Bonjour,

je sèche sur un problème qui commence à m'énerver...
J'ai une procédure stockée comme ci-dessous :

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
20
21
22
23
CREATE PROCEDURE [dbo].[save_or_update_row]
(
@id_row uniqueidentifier output,
@field1 int,
@field2 nvarchar(100),
@field3_date datetime = null,
@email nvarchar(100) = null
)
 AS
BEGIN
    IF @id_row is not null
    BEGIN
        PRINT 'THIS IS AN UPDATE'
        -- ...
        -- ...
    END
    ELSE
    BEGIN
        PRINT 'THIS IS AN INSERT'
        -- ...
        -- ...
    END
END
Quand je la teste, le paramètre @id_row est toujours null dans la procédure stockée.

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
DECLARE @id_row_value uniqueidentifier
SELECT @id_row_value = Convert(uniqueidentifier,'342850fc-ada0-46b0-b55b-e5b3d21646e1')
 
IF @id_row_value is not null
BEGIN
	PRINT 'EXIST'
END 
ELSE
BEGIN
	PRINT 'NOT EXIST'
END
 
EXEC	@return_value = [dbo].[save_or_update_row]
		@id_row =@id_row_value OUTPUT,
		@field1 = 15,
		@field2 = ' test only',
		@field3_date = null,
		@email = null
Le résultat de ce test est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
EXIST
THIS IS AN INSERT
Donc je passe toujours dans le cas ou @id_row est null dans la procédure stockée et je ne comprends pas... c'est le OUTPUT qui me pose problème ?


Merci beaucoup déjà d'avoir lu mon problème... si quelqu'un a une idée de la solution... je suis preneur