首页 > 解决方案 > 如何将局部变量设置为 SQL 中执行的返回值

问题描述

在下面的代码中,我尝试将局部变量设置为从 TSQL 中的执行语句返回的内容。

声明的变量:@id 执行需要一个类型和一个增量,并返回一个值期望的结果是设置返回给变量@id的值

下面的 select 语句显示@id为 0,并且执行似乎正在返回该值,但未将其设置为 @id。研究/谷歌搜索表明这是我应该如何将局部变量设置为执行语句返回的内容,但我显然做得不对。

declare @id int = -1 
exec @id = AP_GET_NEXTID @type = 'CT', @increment = 1
print @id
select @id

下一个 ID 似乎已返回但未设置为 @id 字段。

在此处输入图像描述

标签: sqlsql-servertsqlexeclocal-variables

解决方案


尝试类似...

CREATE TABLE #Result ( NextID int )

DECLARE @id int

INSERT #Result exec AP_GET_NEXTID @type = 'CT', @increment = 1

SELECT TOP 1 @id = NextID FROM #Result

PRINT @id

SELECT @id

推荐阅读