如何修复“多部分标识符...无法绑定”

问题描述 投票:0回答:1

我有一些代码会抛出此错误,我已在功能本身中声明了它

 IF @Functionality='UserDetails'                                        
 BEGIN                                        

   SELECT TOP 10 ROW_NUMBER() OVER(ORDER BY USR.USERBADGENO ASC) AS SNO, 
         USR.USERBADGENO,
         USR.FIRSTNAME + ' ' + USR.LASTNAME AS USERNAME,
         ISNULL(CONVERT(NVARCHAR(100),LST.LASTLOGIN), 'NO LOGS FOUND') AS LASTACCESSED,
         APP.NAME AS APPNAME,
         URD.USERROLECODE 
   FROM USERMASTER USR                                         
   INNER JOIN USERROLEDETAILS URD 
     ON  URD.USERROLECODE = USR.USERROLE                                        
   INNER JOIN APPLICATIONS1 APP 
     ON APP.APPID = URD.APPID                     
   LEFT JOIN LASTLOGINDETAILS LST 
     ON LST.USERID = USR.USERBADGENO 
     AND LST.APPID = APP.APPID                                      
   WHERE APP.APPID = @APPID 
   AND URD.USERROLECODE = @USERROLE   
   ORDER BY LST.LASTLOGIN DESC                                      

 END            

我希望输出在网格视图中显示应用程序中最近三个月的记录

完整的错误消息:

消息4104,级别16,状态1,行1无法绑定多部分标识符“LST.LASTLOGIN”。消息4104,级别16,状态1,行1无法绑定多部分标识符“APP.NAME”。消息4104,级别16,状态1,行1无法绑定多部分标识符“URD.USERROLECODE”。

sql sql-server sql-server-2008-r2
1个回答
0
投票

错误无法绑定多部分标识符xxxxxx

在查询中给出的列不存在时抛出。当编译器尝试编译查询时,它将搜索该列,并且由于列不存在,因此不会编译查询。因此,请确保您已正确拼写列名称。如果您给出了错误的别名,也可能发生这种情况,

例如:

我在User Table中有一个Column UserName,在Employee表中有EmployeeName。所以这个查询会起作用

SELECT UserName FROM User
SELECT EmployeeName FROM Employee

但相反,如果我尝试以下它将失败

SELECT UserName FROM Employee
SELECT EmployeeName FROM User

所以请确保名称拼写正确

© www.soinside.com 2019 - 2024. All rights reserved.