第二个的写法 就错了
你TABLE NAME是动态的就不能那么写了
要用动态SQL语句

解决方案 »

  1.   

    哦,在这里乱打的,没注意另外在第二种方法写对的情况下,哪种更好呢CREATE PROCEDURE list3 
    @id int, 
    @namevar varchar(20) 
    AS
     declare @strSQL   varchar(6000)  
     set @strSql="select * from "+@namevar+" where id="+@id
     exec(@strSql)
    GO 
      

  2.   

    我就纳闷么,能直接select * from @namevar where id=@id的,我还以为SQL Server升级了呢