我正在尝试运行一个动态脚本,然后返回变量,这样我就可以传递给我的脚本的其余部分。在 Google 的帮助下,我有几种方法,但我认为我的语法仍然不正确,因此返回错误或空值。
有人可以告诉我哪里出错了。
例如:要返回变量@table_name ASIA 的值是数据库,它被设置为附加到从表中检索到的表名的变量,而 T5148 是表中的 id 以将表名转换为原样一个变量。我已经设置了这个变量,因为当其他脚本循环时,这个脚本就坐在那里
谢谢
declare @table_name nvarchar(50)
declare @database nvarchar(50)
declare @id nvarchar(50)
declare @sql nvarchar(max)
set @database = 'ASIA'
set @id = 'T5178'
set @sql = N'SELECT @table_name = ''@database''+table_name
FROM ''@database''+tables (NOLOCK)
WHERE id = ''@id'''
exec sp_executesql @sql, N'@table_name nvarchar(50) output', @table_name output
select @TRAN_TABLE