declare @num int,@sqls nvarchar(4000)       
set @sqls='select @a=count(*) from tableName ' --    如何取得记录集?   
exec sp_executesql @sqls,N'@a int output',@num output       
select @num 

解决方案 »

  1.   


    如何取得记录集
    declare sqls nvarchar(4000)       
    set @sqls='select * from tableName ' --    如何取得记录集?   
    exec (@SQLS)
      

  2.   

    declare @num int,@sqls nvarchar(4000)       
    set @sqls='select @a=count(*) from tableName ' --    如何取得记录集?   
    exec sp_executesql @sqls,N'@a int output',@num output       
    select @num 
      

  3.   

    select * into #tbtest from tb_test where 1<>1 --先建个返回记录集一样结构的临时表
    insert into #tbtest exec pr_rsTest--把返回的结果报错到临时表里select * from #tbtest--对临时表操作
    drop table #tbtestCreate   PROCEDURE   pr_rsTest 
    AS 
        Declare   @SQL   nvarchar(4000) 
        Set   @SQL='select   *   from   tb_test' 
        --   @SQL是根据传入参数动态组合的,此仅为示例 
        exec   (@SQL)   --如果以EXEC方式执行,总是不能返回数据集
      

  4.   

    我把昨天的情况说明一下,问题是这样的:
    declare  @num       int,       @sqls       nvarchar(4000)       
    set       @sqls='select  ****   from  tableName'    --我想得到一个记录集,而昨天仅是一个记录(如上)   
    exec(@sqls)
           
    --如何将exec执行结果放入变量中? 我需要了解的是:通过 exec  sp_executesql 动态实现,应该要用表变量的!