DECLARE  @tn  varchar(100)  
SELECT  @tn  =  'company'  
exec('SELECT  *  FROM  '+@tn)

解决方案 »

  1.   

    create procedure proc1 
         as 
         declare @tbname varchar(11),@cs int 
        declare @SQLSTRING NVARCHAR(4000) 
        SET @SQLSTRING=N' update '+@tbname+' set zd1=zd1+'+@cs 
        EXEC sp_executesql @SQLSTRING // CREATE PROCEDURE 
        Find_Dj @table_name varchar(20),@strsql varchar(20) 
         
        AS 
         
        declare @sql varchar(200) 
         
        set @sql='select * from '+@table_name+ ' where '+ @strsql 
        execute(@sql) 
         
    //
    从网上找的两个例子我记得以前试过,,好像也不怎么好用,,你试一下吧
      

  2.   

    用动态Sql语句,然后用exec执行
    declare @sql nvarchar(200)
    set @sql = 'select * from ' + @Tablename
    exec(@sql)
      

  3.   

    但是select语句是在游标中的啊
      execute(@sql) 好像不能用的
      

  4.   

    给你个例子:set @SqlString = 'select count(PageID) from ' +  @TableName
    exec ('declare recrod_cursor cursor for ' + @SqlString)
    open recrod_cursor
    fetch next from recrod_cursor into @RecordCount

    close recrod_cursor
    deallocate recrod_cursor
      

  5.   

    select * from @Tablename
    改成
    exec('select * from '+ @Tablename)
      

  6.   

    对,存储过程中表名称为参数时,Sql语句要拼串,然后EXEC sp_executesql @SQLSTRING