目前正在开发一个可以跨链接服务器更新许多不同表的脚本。我使用08/12 SQL服务器管理工作室。
我遇到了一个问题,我试图将链接服务器字符串设置为变量,因此我可以在开头设置它,并在需要时通过脚本引用。我一直在努力假设我可以将其声明为局部变量,正如我对脚本的其他部分更新本地表/服务器一样,但是在运行脚本时,我收到的语法错误不正确代码我的链接服务器字符串变量位于。
我的代码结构如下:
declare @string varchar(max)
set @string = '[server,instance].[database].dbo.table1'
update @string
set field = updatevariable
where record = identifier
是否可以将链接服务器用作变量?
答案 0 :(得分:0)
您可以动态构建SQL Update字符串,然后将其传递给exec
。示例:
declare
@srv nvarchar(max) = N'[server].[db].[dbo].[table]',
@id int = 100,
@value nvarchar(max) = N'some value',
@sql nvarchar(max)
set @sql = N'update ' + @srv
+ ' set field = ''' + @value + ''' '
+ ' where record = ' + cast(@id as nvarchar)
exec(@sql)