Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将存储过程的结果设置为变量_Sql Server_Tsql_Variables_Stored Procedures - Fatal编程技术网

Sql server 如何将存储过程的结果设置为变量

Sql server 如何将存储过程的结果设置为变量,sql-server,tsql,variables,stored-procedures,Sql Server,Tsql,Variables,Stored Procedures,我调用的存储过程如下: EXEC usp123 @F1 = 1, @F2 = 'A', @F3 = 5 DECLARE @Result int SET @Result = (EXEC usp123 @F1 = 1, @F2 = 'A', @F3 = 5) 由于上述语法不起作用,如何将变量分配给此存储过程的输出。最后一行应该是 Declare @Result Int EXEC @Result = usp123 @F1 = 1, @F2 = 'A', @F3 = 5 我已经找到了答案。您必须

我调用的存储过程如下:

EXEC usp123 @F1 = 1, @F2 = 'A', @F3 = 5

DECLARE @Result int

SET @Result = (EXEC usp123 @F1 = 1, @F2 = 'A', @F3 = 5)

由于上述语法不起作用,如何将变量分配给此存储过程的输出。

最后一行应该是

Declare @Result Int
EXEC @Result = usp123 @F1 = 1, @F2 = 'A', @F3 = 5

我已经找到了答案。您必须将OUTPUT关键字放在参数列表中。
--Check this... your answer is in the last sentence.



DECLARE @IntVariable int;  
DECLARE @SQLString nvarchar(500);  
DECLARE @ParmDefinition nvarchar(500);  
DECLARE @max_title varchar(30);  

SET @IntVariable = 197;  
SET @SQLString = N'SELECT @max_titleOUT = max(JobTitle)   
   FROM AdventureWorks2012.HumanResources.Employee  
   WHERE BusinessEntityID = @level';  
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';  

EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, 
@max_titleOUT=@max_title OUTPUT;  
SELECT @max_title;