繁体   English   中英

SQL Server链接服务器更新

[英]SQL server linked server update

当前正在使用一个脚本,该脚本可以在链接的服务器之间更新许多不同的表。 我使用08/12 SQL Server Management Studio。

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

我的代码结构如下:

declare @string varchar(max)

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

update @string
set field = updatevariable
where record = identifier

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

您可以动态构造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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM