begin process at 2012 05 27 00:10:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Autre

 > 

Procédures Stockées

 > 

Problème lors de la création d'une procédure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème lors de la création d'une procédure

mercredi 2 avril 2008 à 11:51:48 | Problème lors de la création d'une procédure

vinouinthesky


Tout d'abord bonjour :). Voila, j'ai un petit problème c'est que j'essaye de créer une procédure qui permette de supprimer les lignes en double dans une table. J'ai donc réalisé la procédure suivante :

USE

contacts

CREATE

procedure EffaceDouble

@table

TABLE, @key KEY

AS

SELECT

DISTINCT*

INTO replique

FROM @table

GROUPBY @key

HAVINGCOUNT(@key)> 1

DELETE

@table

WHERE @key

IN(SELECT @key

FROM replique)

INSERT @table

SELECT*

FROM replique

DROPTABLE replique

Seulement, j'ai pas mal d'erreur ... :(  :

Msg 156, Niveau 15, État 1, Procédure EffaceDouble, Ligne 3

Syntaxe incorrecte vers le mot clé 'TABLE'.

Msg 1087, Niveau 15, État 2, Procédure EffaceDouble, Ligne 7

La variable de table '@table' doit être déclarée.

Msg 1087, Niveau 15, État 2, Procédure EffaceDouble, Ligne 10

La variable de table '@table' doit être déclarée.

Msg 137, Niveau 15, État 2, Procédure EffaceDouble, Ligne 12

La variable scalaire "@key" doit être déclarée.

Msg 1087, Niveau 15, État 2, Procédure EffaceDouble, Ligne 15

La variable de table '@table' doit être déclarée.


Bref, si vous pouviez m'aider ce serait vraiment sympa surtout que je suis complètement perdu ... Merci d'avance :)

(note : quand je fais INTO replique, ca crée automatiquement la table réplique ?)

jeudi 3 avril 2008 à 11:20:06 | Re : Problème lors de la création d'une procédure

vinouinthesky

Bon j'ai trouvé la solution :

SE contacts

SET

QUOTED_IDENTIFIER ON

GO

SET

ANSI_NULLS ON

GO

Create

procedure Usp_EffaceDoubValeurs as

DECLARE

csr1 CURSOR FOR

SELECT

Nom , Prénom , COUNT (*)

FROM

dbo . Contacts

GROUP

BY Nom , Prénom HAVING COUNT (*) > 1

FOR

READ ONLY

DECLARE

@Col1 nvarchar ( 255 )

DECLARE

@Col2 nvarchar ( 255 )

DECLARE

@count INT

OPEN

csr1

FETCH

NEXT FROM csr1 INTO @Col1 , @Col2 , @count

WHILE

@@FETCH_STATUS <> - 1

BEGIN

IF

@@FETCH_STATUS <> - 2

BEGIN

SET

@count = @count - 1

SET

ROWCOUNT @count

DELETE

FROM dbo . Contacts

WHERE

Nom = @Col1 AND Prénom = @Col2

END

FETCH

NEXT FROM csr1 INTO @Col1 , @Col2 , @count

END

CLOSE

csr1

DEALLOCATE

csr1

SET

ROWCOUNT 0

GO

SET

QUOTED_IDENTIFIER OFF

GO

SET

ANSI_NULLS ON

GO


Seulement, il me vire pas les lignes semblables où j'ai une valeur null pour le prénom... Please help me :)

jeudi 3 avril 2008 à 11:46:22 | Re : Problème lors de la création d'une procédure

vinouinthesky

Finalement il suffisait de mettre : ANSI_NULLS OFF
samedi 5 avril 2008 à 19:55:06 | Re : Problème lors de la création d'une procédure

coq

Administrateur CodeS-SourceS
Salut,

Ca serait peut être mieux d'éviter de se servir de SET ANSI_NULLS OFF, qui est amené à disparaitre (pas une mauvaise chose) et réécrire la requête en gardant à l'esprit que NULL n'est pas une valeur, et que NULL n'est pas égal à NULL
Voir IS [NOT] NULL

Et sinon évite aussi les caractères accentués et autres trucs exotiques dans les noms.


/*
coq
MVP Visual C#
CoqBlog
*/


Cette discussion est classée dans : table, msg, niveau, procédure, effacedouble


Répondre à ce message

Sujets en rapport avec ce message

Procédure Stockée Recherche dans une table [Urgent] [ par Mr Capone ] Bonjour, je souhaite a l'aide d'une procédure stocké savoir si une valeur existe dans une table mais j'y arrive pas. voici mon code : create proced Statistique [ par biiru ] Bonjours à tous,Une fois de plus je sollicite votre aide ^^En fait je dois faire une statistique d'un formulaire et je comptait la faire avec l'aide d Hébreu [ par fdouieb ] Bonjour,Je doit creer une Table Client qui possede un colonne "nom" en anglais et une colonne "nom" en hébreu.J'ai utilisé la notion de classement lor Problème de gestion des signets après execution d'une procédure stockée [ par bl0nd1 ] Tout d'abord bonjour à tous, je rencontre un problème assez génant lors de la lecture de mes resultats (à l'aide d'une page ASP) provenant d'un procéd Procédure Stockée [ par Th_Ax ] Bonjour,J'ai une base avec des tables (exemple Table1,Table2,...)Je souhaite faire de façon dynamique une procédure qui me crée une table archive (ex: Serveur : Msg 7619, Niveau 16, État 1, Ligne 1 L'exécution d'une opération de texte intégral a échoué. Une clause de la requête ne contient que des mots ignorés. [ par karn ] Bonjour je fais des requete de recherche sur texte integral, sous SQL servers  quand je tape 'le' ou ce genre de mot 'noise'il me sort cette erreur et Extraction d'une colonne de la table retournée par la procédure stockée xp_logininfo [ par zavier666 ] Bonjour, j'ai fait un petit soft qui permet de se loguer à un serveur sql et de l'interroger (en download sur le site). lorsque je lui passe la comm if dans une procédure stocké ? [ par jesusonline ] Bonjour, je ne connais pas encore SQLj'ai une table articles qui a un champ ID et je voudrais une fonction stocké qui prend en paramètre un ID et qui REQUETEAJOUT DE TABLE [ par sevajol ] Quelle requete utilié pour obtenir les enregistrement contenus dans 2 table distinctes ( Type et nb de champs identique)ALX34 sql tri?!!! [ par abari ] salut tout le mondej'ai un probléme de tri?!!! dans ma table les enregistrement sont stockées d'une facon des ordonnées comme suit:code nom prénom


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,302 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales