无法绑定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

我有一个包含大量连接的存储过程,我不明白为什么这不起作用-我得到一个错误:

无法绑定多部分标识符“[table.column]”

这是SQL的一个改动部分,原来是-

    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
namd
Id
,因此每当您选择
Id
column时,只需选择
[TableName].Id

就好像错过了连接:“内部连接dbo.OemSegmentation”


您能发布真正的错误消息吗?
“[table.column]”
部分应该准确地指出问题所在。我可以建议使用简单的字母别名,如
C
P
,而不是在语句
内部连接dbo.OemProduct ON OemSegmentation.OemProductId=dbo.OemProduct.Id
may
OemSegmentation.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表,因此它将引发您提到的异常。请从其他文本中转述或引用。给出你所需要的&把它和你的问题联系起来。仅将图像用于不能表示为文本或扩充文本的内容。无法搜索或剪切粘贴图像。包括带有图像的图例/图例和说明。