我收到错误 SQL 消息 4104
Posted
技术标签:
【中文标题】我收到错误 SQL 消息 4104【英文标题】:I get error SQL Msg 4104 【发布时间】:2016-09-22 19:10:36 【问题描述】:使用此代码:
UPDATE MyBase.dbo.Inventory
SET Inventory.BarCode= Table1.Barcode
FROM Market.dbo.Table1, MyBase.dbo.Inventory
WHERE Table1.Barcode=Inventory.BarCode
我收到错误消息:Msg 4104, Level 16, State 1, Line 1 无法绑定多部分标识符“Table1.Barcode”。
【问题讨论】:
【参考方案1】: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
【讨论】:
应该是开启的,我加了 现在我得到错误:无法解决等于操作中“SQL_Latin1_General_CP1253_CI_AS”和“Greek_CI_AS”之间的排序规则冲突。 尝试使用 collateSQL_Latin1_General_CP1253_CI_AS
@DiH:查看更新的答案,您也可以发布所涉及表的表架构
我该怎么做?我没有再做一次。感谢您的回答!【参考方案2】:
您应该为此使用显式连接,并为您的表提供适当的别名:
UPDATE I
SET I.BarCode = T.Barcode
FROM MyBase.dbo.Inventory I
INNER JOIN Market.dbo.Table1 T
ON I.BarCode = T.Barcode;
【讨论】:
以上是关于我收到错误 SQL 消息 4104的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pl/sql 块插入多条记录?我在这段代码中收到错误消息
如何在spring mvc 3.0中的同一jsp中显示运行时错误消息或sql错误消息