Comment attribuez-vous le résultat d'un appel exec à une variable SQL? J'ai un proc stocké appelé up_GetBusinessDay
, qui renvoie une date unique.
Pouvez-vous faire quelque chose comme ça:
exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1
J'utilise toujours la valeur de retour pour transmettre le statut d'erreur. Si vous devez renvoyer une valeur, j'utilise un paramètre de sortie.
exemple de procédure stockée, avec un paramètre OUTPUT:
CREATE PROCEDURE YourStoredProcedure
(
@Param1 int
,@Param2 varchar(5)
,@Param3 datetime OUTPUT
)
AS
IF ISNULL(@Param1,0)>5
BEGIN
SET @Param3=GETDATE()
END
ELSE
BEGIN
SET @Param3='1/1/2010'
END
RETURN 0
GO
appel de la procédure stockée, avec un paramètre OUTPUT:
DECLARE @OutputParameter datetime
,@ReturnValue int
EXEC @ReturnValue=YourStoredProcedure 1,null, @OutputParameter OUTPUT
PRINT @ReturnValue
PRINT CONVERT(char(23),@OutputParameter ,121)
SORTIE:
0
2010-01-01 00:00:00.000
Cela fonctionnera si vous souhaitez simplement renvoyer un entier:
DECLARE @ResultForPos INT
EXEC @ResultForPos = storedprocedureName 'InputParameter'
SELECT @ResultForPos
declare @EventId int
CREATE TABLE #EventId (EventId int)
insert into #EventId exec rptInputEventId
set @EventId = (select * from #EventId)
drop table #EventId
Depuis le documentation (en supposant que vous utilisez SQL-Server):
USE AdventureWorks;
GO
DECLARE @returnstatus nvarchar(15);
SET @returnstatus = NULL;
EXEC @returnstatus = dbo.ufnGetSalesOrderStatusText @Status = 2;
PRINT @returnstatus;
GO
Alors oui, cela devrait fonctionner ainsi.