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é:

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
Malheureusement quand je l'éxecute :



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;
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.

Sauriez vous pourquoi?

D'avance merci!!