SQL - 使用子查询和链接服务器更新命令

时间:2013-12-11 20:38:23

标签: sql-server subquery alias linked-server

我目前正在尝试使用链接服务器

在桌面上运行更新

实施例

update table1 a
set a.column1=(select Count(b.column1) FROM linkedserver.databse.table b)
where a.column2=b.column2
and a.column3=b.column3

我的问题是:

无法绑定多部分标识符“linkedserver.databse.table.column”。

我能看到这个工作的唯一方法是使用别名,我知道服务器具有对链接服务器的适当访问权。

3 个答案:

答案 0 :(得分:1)

您需要在查询中包含架构

尝试使用

LinkedServer.Database.Schema.Table

或者

LinkedServer.Database..Table   (if schema is dbo)

答案 1 :(得分:0)

不确定这是你问题的原因,因为我希望看到不同的错误,但你的语法应该是:

update a
   set a.column1=(select count(b.column1) 
                    from linkedserver.databse.table b
 where a.column2=b.column2
       and a.column3=b.column3)
  from table1 a

答案 2 :(得分:0)

在使用链接服务器时,请使用UPDATE FROM语句和4部分表名。

update table1
set column1=(select Count(b.column1) FROM linkedserver.databse.dbo.table b)
from table1 a
where a.column2=b.column2 and a.column3=b.column3