在存储过程中有如下语句:
declare @sqlstr
declare @tablenameset @tablename='rs_dept'set @sqlstr='select * from'+@tablenameexec(@sqlstr)
....下面我要对这个语句返回的结果集进行操作我如何取得这个动态SQL语句返回的结果集

解决方案 »

  1.   

    create proc sp_a
    @tablename varchar(100)
    as
    declare @sqlstr varchar(1000)
    set @sqlstr='select * from'+@tablename
    exec(@sqlstr)
    GO
    exec sp_a 'rs_dept'
    go
      

  2.   

    改一下:上边from后面少一个空格alter proc sp_a
    @tablename varchar(100)
    as
    declare @sqlstr varchar(1000)
    set @sqlstr='select * from '+@tablename
    exec(@sqlstr)
    GO
    exec sp_a 'rs_dept'
    go
      

  3.   

    把结果into到一张表里,然后处理
      

  4.   

    TO: itblog(i like i do) 不对!我要更新怎么做!TO: xeqtr1982(ShaKa) ( ) 我想用临时表或表变量做!
    因为实表不好控制多用户操作!
    --------
    我是想在同一过程中对我的动态语句结果集进行操作
      

  5.   

    xeqtr1982(ShaKa) ( ) 
    的方法是可行的。但必须是真实表!我希望多用户同时执行这个过程是不能相互干扰的!
      

  6.   

    SELECT a.*
    Into #Temp
    FROM OPENROWSET('SQLOLEDB','Server';'UserID';'Pwd',
       @Sql) AS a
    不知道这样行不行。
    因为我这儿没有办法测试,你自己试试吧。