动态SQL语句如何获取其结果

shilifeng 2013-03-07 08:10:44
declare @Account varchar(30) --科目编码

declare @column varchar(3000)
declare @sql varchar(4000)
set @sql = ''
set @column = ''
--赋值
SELECT @column= @column+','+'max(case when adjustType='''+adjustbh+''' then adjustvalue end) as '+columnfield
FROM srv_Info.WF_Info.dbo.BD_AccountAdjust a join srv_Info.WF_Info.dbo.BD_DB_AdjustInfo b on a.adjustid= b.adjustbh
where a.accountid = @Account

set @sql = 'select pzbh,zibh,account '+ @column+ ' from dbo.CW_PD_PZSU WHERE ACCOUNT = '+@Account+' group by pzbh,zibh,account'
print @sql
exec (@sql)

----如题,我的列是动态列,如何根据动态SQL语名,把执行的结果给取出来放到动态的表中,因为列是动态的所以获取后的数据集合也是动的,我想获取EXEC (@SQL)执行后结果,并把它放到动态表中 请教高手
...全文
918 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shilifeng 2013-03-09
  • 打赏
  • 举报
回复
谢谢楼上的,关于动态列谁还有比较好的思路没有
szm341 2013-03-08
  • 打赏
  • 举报
回复
引用 6 楼 shilifeng 的回复:
这个过程经常要用到,所以你说的方法可能行不能,还有位高手做过这方面,能不能讲讲思路
还有个思路,不过没实践过,因为最终好多人都放弃动态创建了呵呵 就是在前一个存储过程中,动态创建全局临时表##t,然后给该表一个随机命名(为了保证不重复),将表名out到外面的存储过程,外面凡是用到这个临时表的语句,全部需要用动态sql拼接执行
shilifeng 2013-03-08
  • 打赏
  • 举报
回复
这个过程经常要用到,所以你说的方法可能行不能,还有位高手做过这方面,能不能讲讲思路
szm341 2013-03-07
  • 打赏
  • 举报
回复
SELECT * into #t FROM OPENROWSET('sqloledb','uid=sa;pwd=123','EXEC db.dbo.xxa') 如果写入存储过程的话,可以给存储过程加密防止密码泄露
shilifeng 2013-03-07
  • 打赏
  • 举报
回复
select * from #table 这个是没有办法调用的
shilifeng 2013-03-07
  • 打赏
  • 举报
回复
这个方法我试过了,动态语句里面的我外面是没有办法调用的
shoppo0505 2013-03-07
  • 打赏
  • 举报
回复
set @sql = 'select pzbh,zibh,account '+ @column+ ' into #table from dbo.CW_PD_PZSU WHERE ACCOUNT = '+@Account+' group by pzbh,zibh,account' #table名字可以任意给,执行完命令以后,记得把这个表格删除。
shilifeng 2013-03-07
  • 打赏
  • 举报
回复
还有人在吗,想了一天了,还没有想出好的思路,请高手赐教

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧