UPDATE / JOIN(SQL Server)中另一台服务器上的表中的引用列

时间:2012-03-13 13:26:04

标签: sql-server join naming

我熟悉4部分命名,但每次尝试引用列时都会出错。例如:

UPDATE my_table
SET my_table.column1 = otherserver.otherdatabase.dbo.othertable.column1
FROM my_table INNER JOIN otherserver.otherdatabase.dbo.othertable
ON my_table.column2 = otherserver.otherdatabase.dbo.othertable.column2

这会引发以下错误:

  

无法绑定多部分标识符“otherserver.otherdatabase.dbo.othertable.column1”。

如果我只引用一个表,我从来没有遇到麻烦,但是当我追加列名时,它总是会抛出一个错误。有任何想法吗? SQL Server 2008

2 个答案:

答案 0 :(得分:5)

在限定列数时,只需使用表格名称。

UPDATE my_table
SET my_table.column1 = othertable.column1
FROM my_table INNER JOIN otherserver.otherdatabase.dbo.othertable
ON my_table.column2 = othertable.column2

或使用别名。

UPDATE my_table
SET my_table.column1 = OT.column1
FROM my_table INNER JOIN otherserver.otherdatabase.dbo.othertable as OT
ON my_table.column2 = OT.column2

答案 1 :(得分:1)

使用表别名然后访问列:

UPDATE my_table
SET my_table.column1 = A.column1
FROM my_table INNER JOIN otherserver.otherdatabase.dbo.othertable A
ON my_table.column2 = A.column2