2014-09-25 55 views
-1

這是關於SQL Server管理SQL Server ambigous col name

我試圖更新表時遇到此錯誤:「不明確的列名'Id'。」

這是查詢:

update DispatcherDB.dbo.Engineer 
set MobilePhone = RestoreDB.dbo.W6ENGINEERS.MobilePhone 
from DispatcherDB.dbo.Engineer join RestoreDB.dbo.W6ENGINEERS 
on Id = W6Key 

我在其他表之前完成該查詢沒有問題。當談到SQL時我仍然是新手,所以任何幫助/建議都將不勝感激! 謝謝!

+1

你需要告訴ON子句你的意思是哪一個Id列(在兩個表中顯然都有一個 - 無論如何對於一個列來說是多麼可怕的名字)。另請參閱[this](http://stackoverflow.com/questions/1604091/update-a-table-using-join-in-sql-server/1604212#1604212)。 – 2014-09-25 13:27:15

+1

你在這個更新中使用的表中有'id'字段,你需要添加一個別名或者表名 – zaratustra 2014-09-25 13:27:19

回答

2

你必須給你的表提供別名(不是必須的,但很好做),然後你必須定義你在on子句中使用的id表。

update E 
set MobilePhone = W.MobilePhone 
from DispatcherDB.dbo.Engineer E join RestoreDB.dbo.W6ENGINEERS W 
on E.Id = W.W6Key 
+0

不應該是'UPDATE E'' UPDATE Dispatcher ...''你也可以在第二行使用W別名... – 2014-09-25 13:29:04

+0

@AaronBertrand它應該可以同時工作。 – 2014-09-25 13:29:56

+0

儘管使用別名的要點是不必在整個查詢中重複「database.schema.table」。我喜歡答案(+1),它看起來像是在與自己爭論:「別名是好的!」 「但我不想用別名!」 – 2014-09-25 13:31:00