SQL Server链接服务器更新

时间:2017-06-22 23:50:00

标签: sql sql-server linked-server

目前正在开发一个可以跨链接服务器更新许多不同表的脚本。我使用08/12 SQL服务器管理工​​作室。

我遇到了一个问题,我试图将链接服务器字符串设置为变量,因此我可以在开头设置它,并在需要时通过脚本引用。我一直在努力假设我可以将其声明为局部变量,正如我对脚本的其他部分更新本地表/服务器一样,但是在运行脚本时,我收到的语法错误不正确代码我的链接服务器字符串变量位于。

我的代码结构如下:

declare @string varchar(max)

set @string = '[server,instance].[database].dbo.table1'

update @string
set field = updatevariable
where record = identifier

是否可以将链接服务器用作变量?

1 个答案:

答案 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)