【问题标题】:How to set the result of a stored procedure to a variable如何将存储过程的结果设置为变量
【发布时间】:2016-11-07 20:53:52
【问题描述】:

我正在调用这样的存储过程:

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

DECLARE @Result int

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

如何为这个存储过程的输出分配一个变量,因为上面的语法不起作用..

【问题讨论】:

标签: sql-server tsql variables stored-procedures


【解决方案1】:

最后一行应该是

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

【讨论】:

  • 我找到了答案。您必须将 OUTPUT 关键字放在参数列表中。
【解决方案2】:
--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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多