vinouinthesky
Messages postés3Date d'inscriptionlundi 4 décembre 2000StatutMembreDernière intervention 3 avril 2008
-
2 avril 2008 à 11:51
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
5 avril 2008 à 19:55
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
KEYAS
SELECT
DISTINCT
*
INTO replique
FROM @table
GROUP
BY @key
HAVING
COUNT(@key
)
> 1
DELETE
@table
WHERE @key
IN
(SELECT @key
FROM replique
)
INSERT @table
SELECT
*
FROM replique
DROP
TABLE 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 ?)
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014100 5 avril 2008 à 19:55
Salut,
Ca serait peut être mieux d'éviter de se servir deSET 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 [http://msdn2.microsoft.com/fr-fr/library/ms188795.aspx IS [NOT] NULL]
Et sinon évite aussi les caractères accentués et autres trucs exotiques dans les noms.