修改下楼主的语句:Create procedure  pr_test  @tableName varchar(50)
As
exec('Select * From '+ @tableName)
goexec  pr_test '你想查询的表名'

解决方案 »

  1.   

    Create procedure pr_test
          @tableName varchar(50)
    As
          declare @sql varchar(1000)
          SET @sql='select * from'+CAST(@tableName AS varchar)
    exec(@sql)
    GO
      

  2.   

    原因:表名和列名不能用变量.随便问一下, 如果我要select ... from 表变量的话, 那应该怎么做呢?
    将declare 语句也说在exec里面?还是用sp_executesql?
      

  3.   

    SET QUOTED_IDENTFIRE OFF
    GO
    SET ANSI_NULLS ON
    GO
    Create procedure pr_test
          @tableName varchar(50)
    As
    BEGIN
          declare @m_SQLStr  CHAR(8000)
          select @m_SQLStr="
          Select *
          From "+ @tableName
          exec(@m_SQLStr)
    END 
    SET QUOTED_IDENTFIRE OFF
    GO
    SET ANSI_NULLS ON
    GO
      

  4.   

    create procedure pr_test
          @tableName varchar(50)
    As
          declare @sql varchar(1000)
          SET @sql='select * from '+CAST(@tableName AS varchar)
    exec(@sql)
    GO
      

  5.   

    exec(@sql)的灵活运用值得学习
    在数据库运用中比较常见