2012-03-13 7 views
3

4部構成の名前付けに精通していますが、列を参照しようとするたびにエラーが発生します。UPDATE/JOIN(SQL Server)の別のサーバー上のテーブルの参照列

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 

これは、次のエラーがスローされます:たとえば

The multi-part identifier "otherserver.otherdatabase.dbo.othertable.column1" could not be bound.

私はテーブルを参照していた場合、私は悩みを持っていることはありませんが、私は、列名を追加するとき、それは常にエラーをスローします。何か案は?

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 
+1

「otherserver.otherdatabase.dbo.othertableからcolumn1を選択してください」と表示されますか? – garik

+0

はい、うまくいきます。 – eek142

答えて

5

あなたが列を修飾するときだけ、テーブル名を使用します。SQL Server 2008の

+0

それは働いた!私はこれを行う簡単な方法があることを知っていた。ありがとう!! – eek142

+0

ありがとう、これは私にナッツを運転していた。私はスキーマ(dbo)の部分を忘れていた! – Avagut

1

使用テーブルの別名は、列にアクセスします。

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

または別名を使用してください。

+0

素晴らしい作品です!ありがとう! – eek142

関連する問題