无法绑定SQL内部联接多部分标识符
我有一个包含大量连接的存储过程,我不明白为什么这不起作用-我得到一个错误: 无法绑定多部分标识符“[table.column]” 这是SQL的一个改动部分,原来是-无法绑定SQL内部联接多部分标识符,sql,sql-server,join,stored-procedures,Sql,Sql Server,Join,Stored Procedures,我有一个包含大量连接的存储过程,我不明白为什么这不起作用-我得到一个错误: 无法绑定多部分标识符“[table.column]” 这是SQL的一个改动部分,原来是- dbo.Release INNER JOIN dbo.Cartridge INNER JOIN dbo.PriceClass AS PriceClass ON dbo.Cartridge.PriceClassId = PriceClass.Id INNER JOIN dbo.Cartrid
dbo.Release
INNER JOIN
dbo.Cartridge
INNER JOIN
dbo.PriceClass AS PriceClass ON dbo.Cartridge.PriceClassId = PriceClass.Id
INNER JOIN
dbo.CartridgeType ON dbo.Cartridge.CartridgeTypeId = dbo.CartridgeType.Id
ON dbo.Release.Id = dbo.Cartridge.ReleaseId
INNER JOIN
dbo.OemSegmentation
INNER JOIN
dbo.OemProduct ON dbo.OemSegmentation.OemProductId = dbo.OemProduct.Id
INNER JOIN
dbo.OemPlatform ON dbo.OemSegmentation.OemPlatformId = dbo.OemPlatform.Id
INNER JOIN
dbo.OemMediaType ON dbo.OemSegmentation.OemMediaTypeId = dbo.OemMediaType.Id
ON dbo.CartridgeType.Id = dbo.OemSegmentation.SupplCartTypeId
OR dbo.CartridgeType.Id = dbo.OemSegmentation.CartridgeTypeId
LEFT OUTER JOIN
dbo.CartridgeCoverage ON dbo.Cartridge.Id = dbo.CartridgeCoverage.CartridgeId
我想把它改成-
dbo.Release
INNER JOIN
dbo.Cartridge
INNER JOIN
dbo.PriceClass AS PriceClass ON dbo.Cartridge.PriceClassId = PriceClass.Id
INNER JOIN
dbo.CartridgeType ON dbo.Cartridge.CartridgeTypeId = dbo.CartridgeType.Id
ON dbo.Release.Id = dbo.Cartridge.ReleaseId
INNER JOIN
dbo.OemProduct ON OemSegmentation.OemProductId = dbo.OemProduct.Id
INNER JOIN
dbo.OemPlatform ON dbo.OemSegmentation.OemPlatformId = dbo.OemPlatform.Id
INNER JOIN
dbo.OemMediaType ON dbo.OemSegmentation.OemMediaTypeId = dbo.OemMediaType.Id
LEFT OUTER JOIN
dbo.CartridgeCoverage ON dbo.Cartridge.Id = dbo.CartridgeCoverage.CartridgeId
错误发生在这些行上
INNER JOIN
dbo.OemProduct ON OemSegmentation.OemProductId = dbo.OemProduct.Id
INNER JOIN
dbo.OemPlatform ON dbo.OemSegmentation.OemPlatformId = dbo.OemPlatform.Id
INNER JOIN
dbo.OemMediaType ON dbo.OemSegmentation.OemMediaTypeId = dbo.OemMediaType.Id
为表添加别名后,请使用别名为列使用两个零件名称。i、 e
[TableAlias].[ColumnName]
我相信您在所有表中都经常使用column
namdId
,因此每当您选择Id
column时,只需选择[TableName].Id
就好像错过了连接:“内部连接dbo.OemSegmentation”
您能发布真正的错误消息吗?
“[table.column]”
部分应该准确地指出问题所在。我可以建议使用简单的字母别名,如C
或P
,而不是在语句内部连接dbo.OemProduct ON OemSegmentation.OemProductId=dbo.OemProduct.Id
mayOemSegmentation.OemProductId
应该dbo.OemSegmentation.OemProductId
发布实际值错误
和查询
!!在查询中引用列时不要包含架构名称!这样做是不可取的,您的代码将在SQL Server的未来版本中突然中断。而是使用精心挑选的别名。例如,OemMediaType
的MT
,以及OemProduct
的Prd
和Plt
的OemPlatform
的实际错误是-Msg 4104,级别16,状态1,步骤SPCAMPFORIMPORT,第49行[批处理开始行7]多部分标识符“dbo.OemSegmentation.OemProductId”无法约束。Msg 4104,第16级,状态1,程序spGetLegacyCmapForImport,第50行[批处理起始行7]无法绑定多部分标识符“dbo.OemSegmentation.OemPlatformId”。Msg 4104,第16级,状态1,过程spGetLegacyCmapForImport,第51行[批处理起始行7]无法绑定多部分标识符“dbo.OemSegmentation.OemMediaTypeId”。我不需要它,是吗?是的,您应该或更改随后的连接条件,例如:您正在使用“OemSegmentation.OemProductID”在内部联接条件中,但未使用OEMSegration表,因此它将引发您提到的异常。请从其他文本中转述或引用。给出你所需要的&把它和你的问题联系起来。仅将图像用于不能表示为文本或扩充文本的内容。无法搜索或剪切粘贴图像。包括带有图像的图例/图例和说明。