如何解决“无法绑定多部分标识符....

时间:2019-04-22 09:46:03

标签: sql sql-server sql-server-2008-r2

我有某些代码会引发此错误,并且已经在功能本身中声明了它

 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”。

1 个答案:

答案 0 :(得分:0)

  

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

当查询中给定的列不存在时,抛出

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

例如:

我在用户表中有一个列UserName,在雇员表中有EmployeeName。因此,该查询将有效

SELECT UserName FROM User
SELECT EmployeeName FROM Employee

但是,如果我尝试以下操作,它将失败

SELECT UserName FROM Employee
SELECT EmployeeName FROM User

所以请确保名称拼写正确