我熟悉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
答案 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