帮我看看这条SQL语句
DECLARE @PageNum INT
SET @PageNum=5
DECLARE @UserID VARCHAR(20)
SET @UserID='ningbin'
EXEC('select top '+@PageNum+' LogID,LogTitle,LogContent,UserName,LogMenuName,LogDateTime  
from tbl_log inner join tbl_User on tbl_User.UserID=tbl_log.UserID 
inner join tbl_LogMenu on tbl_LogMenu.LogMenuID=tbl_log.LogMenuID 
where tbl_log.UserID='+ @UserID +'
ORDER BY LogDateTime DESC')错误 
服务器: 消息 207,级别 16,状态 3,行 1
列名 'ningbin' 无效。表中 是有数据的

解决方案 »

  1.   

    DECLARE @PageNum INT
    SET @PageNum=5
    DECLARE @UserID VARCHAR(20)
    SET @UserID='ningbin'
    EXEC('select top '+@PageNum+' LogID,LogTitle,LogContent,UserName,LogMenuName,LogDateTime  
    from tbl_log inner join tbl_User on tbl_User.UserID=tbl_log.UserID 
    inner join tbl_LogMenu on tbl_LogMenu.LogMenuID=tbl_log.LogMenuID 
    where tbl_log.UserID='''+ @UserID +'''
    ORDER BY LogDateTime DESC')
      

  2.   

    where tbl_log.UserID='+ @UserID +'
    -->
    where tbl_log.UserID='''+ @UserID +'''
      

  3.   

    /*
    在TOP后面使用变量
    (爱新觉罗.毓华  2008-01-02  广东深圳)
    */--SQL SERVER 2005 的写法
    use adventureworks
    goDECLARE @Percentage int
    SET @Percentage = 1
    SELECT TOP (@Percentage) PERCENT
    Name
    FROM Production.Product
    ORDER BY Name/*
    Name
    ----------------------
    Adjustable Race
    All-Purpose Bike Stand
    AWC Logo Cap
    BB Ball Bearing
    Bearing Ball
    Bike Wash - Dissolver(6 行受影响)
    */-----------------------------------
    --SQL SERVER 2000 的写法
    create table a([id] [int])
    insert into a(id) values(1)
    insert into a(id) values(2)
    insert into a(id) values(3)
    insert into a(id) values(4)
    insert into a(id) values(5)declare @num as int
    declare @sql as varchar(2000)
    set @num = 2
    set @sql = 'select top ' + cast(@num as char) + ' * from a'
    exec(@sql)drop table a
    /*
    id          
    ----------- 
    1
    2
    */
      

  4.   

    好奇的问下怎么才可以把SQL代码复制上来。
      

  5.   

    '''+ @UserID +'''' --子符串变量加上引号