我试图从执行动态查询中获取值:
declare @query nvarchar(max)
, @returned_value nvarchar(50)
set @returned_value = 'not changed'
set @query = 'select 1000'
exec sp_executesql @query, N'@returned_value varchar(50) OUTPUT', @returned_value OUTPUT
select @returned_value
然而,当我选择@returned_value时,我会继续得到它的初始值。
更确切地说:
如何保留返回值?发生了什么,我错过了什么?
答案 0 :(得分:2)
您必须在查询中分配参数。替换:
set @query = 'select 1000'
使用:
set @query = 'select @returned_value = 1000'