我得到错误SQL Msg 4104

时间:2016-09-22 19:10:37

标签: sql-server sql-server-2008

使用此代码:

UPDATE MyBase.dbo.Inventory
SET Inventory.BarCode= Table1.Barcode
FROM Market.dbo.Table1, MyBase.dbo.Inventory
WHERE Table1.Barcode=Inventory.BarCode 

我收到错误消息:消息4104,级别16,状态1,行1 无法绑定多部分标识符“Table1.Barcode”。

2 个答案:

答案 0 :(得分:3)

您应该为此使用显式连接,并为表提供正确的别名:

UPDATE I
SET I.BarCode = T.Barcode 
FROM MyBase.dbo.Inventory I
INNER JOIN Market.dbo.Table1 T
    ON I.BarCode = T.Barcode;

答案 1 :(得分:2)

UPDATE t2 
SET t2.BarCode= t1.Barcode 
FROM Market.dbo.Table1 t1
join
 MyBase.dbo.Inventory t2 on t1.Barcode collate SQL_Latin1_General_CP1253_CI_AS=t2.BarCode collate SQL_Latin1_General_CP1253_CI_AS

问题是,由于您没有使用DBname对其进行限定,并且您可能不在同一个数据库中,因此也使用别名使其更具可读性。

另请查看以下链接所有答案以获取更多关于校对的信息..

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation