Bonjour,
Voilà, j'ai une procédure stockée avec un output qui devrait me renvoyer 0 s'il existe sinon l'ID nouvellement inséré:
Malheureusement quand je l'éxecute :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ALTER PROCEDURE [dbo].[InsertAnnonceur] @Responsable varchar(250), @email varchar(250), @Annonceur_id BIGINT OUTPUT AS BEGIN SET NOCOUNT ON; IF (SELECT COUNT(*) FROM dbo.annonceurs WHERE email=@email) > 0 BEGIN SELECT @Annonceur_id = 0; END ELSE INSERT INTO dbo.annonceurs(Responsable,Email) VALUES (@responsable,@Email); SELECT @Annonceur_id = @@IDENTITY; END
J'ai bien mon nouvel ID si l'email n'est pas présent, en revanche, s'il est présent je reçois l'ID de la ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DECLARE @Retour BigINt; exec dbo.InsertAnnonceur @Responsable = 'test',@email='test@sda.sdq',@Annonceur_id=@Retour OUTPUT; PRINT @Retour;
Sauriez vous pourquoi?
D'avance merci!!
Partager