create proc 得到数据
@表名 varchar(255)
as
exec('select * from '+@表名)
go

解决方案 »

  1.   

    create table #临时表(结构和返回结果相同 int)insert #临时表 exec 得到数据 'Table1'select * from #临时表godrop table #临时表
      

  2.   

    我说的这些都是写在一个存储过程里面的
    动态生成的表名字只能计算出来,直接用select加变量名又不行,只好用exec,可又不能直接返回结果
      

  3.   

    我要的是exec ('select 数据 from ' + 临时表)中的数据,怎么才能得到??
      

  4.   


    create procedure aa
    as
    exec('select * into ##表 from 原表')
    exec('select * from ##表')
    drop table ##表
    go
      

  5.   

    我上面是一种方法!还有这种:create table #临时表 (结构和动态表相同 int)exec('insert #临时表 select * from '+@表名变量)select * from #临时表go
    drop table #临时表
      

  6.   

    如果是SQL Server2000,某些比较难处理的返回值,可以使用表值函数。
      

  7.   

    --好象zjcxc(邹建)说对了楼主的意思,我这里再提供另一种写方法:
    declare @tablename varchar(30)  --你的表名,按楼主的说法,应该是一个变量
    declare @username varchar(100)  --比如我们要查询改变量表的某一个数据,查询条件为@username 
    declare @userZJF  int  --变量,返回要查询的该用户的专家分
    declare @tempSql nvarchar(1000)
    declare @varType nvarchar(500)set @tablename = '<your table name>'  --请修改参数赋植
    set @username = '<your user name>'    --请修改参数赋植set @tempsql = 'select @userZJF = fitemid from ' + @tablename   +'
                    where fnumber = @username '
    set @vartype = '@userZJF int output,@username varchar(100) '
    exec sp_executesql @tempsql, @vartype, @userZJF output,@usernameselect @userzjf  --查看返回结果/*******
    回复人: zjcxc(邹建) ( ) 信誉:100  2003-07-31 21:34:00  得分:0 create procedure aa
    as
    exec('select * into ##表 from 原表')
    exec('select * from ##表')
    drop table ##表
    go
    *************/