一个存储过程,要把拼接的字符串执行的结果当做子查询的表或者把这个结果放到表变量中:declare @sql varchar(8000)
declare @tempTable table(department varchar(50))set @sql='select * from sysDepartment ' (exec @sql) as a //这有问题,怎么把 exec @sql 执行的结果当成一个表来处理

解决方案 »

  1.   


    --建个表,insert into tb exec(@sql)create table #temp(id int)
    goinsert into #temp exec('select 1')
    select * from #tempdrop table #tempid
    -----------
    1(1 行受影响)
      

  2.   

    declare @sql varchar(8000)
    create table #tempTable(department varchar(50))set @sql='insert #tempTable select * from sysDepartment ' (exec @sql)select * from #tempTable
      

  3.   

    顶个看来 insert into @tb exec(xxx) 
    insert into @tb exec up_xx 都行。
      

  4.   


    楼上这个可以
    不过要先 CREATE TABLE @tb(......)
    才行的
      

  5.   


    declare @ccount int,@csql nvarchar(200) 
    set @ccount = 2
    set @csql='select @a=1' 
    exec sp_executesql @csql,N'@a int output',@ccount output--将exec的结果放入变量中的做法 
    select @ccount