当我试图根据另一个表更新表时,我会不断出现这些错误.我最终重写了查询,更改了连接的顺序,更改了一些分组,然后它最终运行了,但我还是不太明白.

什么是"多部分标识符"

SQL Server 2005的具体错误是:

多部分标识符"…"无法约束.

下面是一个例子:

UPDATE  [test].[dbo].[CompanyDetail]

SET Mnemonic = [dbBWKMigration].[dbo].[Company].[MNEMONIC], 
               [Company Code] = [dbBWKMigration].[dbo].[Company].[COMPANYCODE]

WHERE [Company Name] = **[dbBWKMigration].[dbo].[Company].[COMPANYNAME]**

实际错误:

Msg 4104,16级,状态1,第3行多部分标识符

推荐答案

多部分标识符是对包含多个部分的字段或表的任何描述,例如MyTable.SomeRow——如果它不能绑定,那就意味着它有问题——要么你有一个简单的打字错误,要么是表和列之间的混淆.这也可能是由于在表名或字段名中使用保留字,而不是在其周围使用[]引起的.

redgate sql prompt这样的东西可以避免手动输入这些内容(它甚至可以根据外键自动完成连接),但不是免费的.SQLServer2008支持intellisense开箱即用,尽管它没有redgate版本那么完整.

Sql相关问答推荐

如何将资源密集型自连接转换为更快的查询?

SQL是否可以计算每年的所有日期变化?

仅在特定字符串之后提取两个圆括号之间的计量单位文本

SQL:如何取上一年的平均值?

SQL:如何查找聚合满足条件的连续日期

查找表中特定值的上次更新日期

在Power Bi中将SQL代码转换为DAX

SQL中相同表内的VLOOKUP等价

Postgresql - WHERE 中的 MAX 标准 - 初学者问题

如何判断小数点后千位是否不为0

从另一个没有公共键的表中获取值来加入

INSERT INTO 语法

如何在sparksql查询中使用日期值?

如何获取每个组中最近的n条记录并将它们聚合成数组

函数调用作为插入值语句中的参数

存储过程 - 动态 SQL 中不同列值的计数

T-SQL 查询计算日期在其他列中定义的日期之间绑定的行数

SELECT 用于 Parent、Children 和 ORDER BY [Order] 列

在 MySql 数据库中的两个日期之间搜索

在 Microsoft SQL Server 中,如何只为特定值保留不同的行?