Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème lors de la création d'une procédure [ Autre / Procédures Stockées ] (vinouinthesky)

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é 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 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 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 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 bloquer sur une requete [ par yubi ] Salut a tous,Le but :Dans une table de clients (chaque client est identifie par une chaine de carateres (concatenat) composeé de plusieurs informatio Renseigner un champs d'une table par une variable [ par Rouk ] Bonjour, Je n'arrive pas a renseigner un champs d'une table par une variable. Exemple : Base1.Table1.Champ = MavariableJ'ai essaye avec un set, mais s


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,19 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.