MS SQL Server在存储过程怎样保存另一个存储过程的多个结果集
时间: 2019-06-03来源:博客园
前景提要
MS SQL Server在存储过程怎样保存另一个存储过程的多个结果集
1 [待解决问题] 存储过程A返回三个结果集,在存储工程B里边怎么把这三个结果集存起来啊?一个我知道怎么弄,三个就不知道了 少司命& | 菜鸟二级 | 园豆: 204
提问于:2019-06-03 18:30 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(2) 0 要不试试,创建三个临时表,然后调用另外一个存储过程的时候查出来?或者你已经知道如何搞一个,数据组装组装将三个合并到一个里边? maxradish | 园豆:222 (菜鸟二级) | 2019-06-03 20:07 insert into #t (a,b)
exec pr_b 120,188
一个表的是这样,三个不能这样吧,实在不行我就去改存储过程了 支持( 0 ) 反对( 0 ) 少司命& | 园豆:204 (菜鸟二级) | 2019-06-04 08:44 @少司命&:
没搞过这样的要求,但是应该可以用下边这种方法弄吧,或者研究一下 proc的 output?
1、先创建3个临时表
2、创建存储过程A,在A里边将值分别查到3个临时表
3、创建存储过程B,在B里边调用A,
不知道这样可不可以,没试过, 支持( 0 ) 反对( 0 ) maxradish | 园豆:222 (菜鸟二级) | 2019-06-04 09:10 @maxradish: 我已经在改旧存储过程了,把三个结果放到一个临时表 支持( 0 ) 反对( 0 ) 少司命& | 园豆:204 (菜鸟二级) | 2019-06-04 09:36 @少司命&:
Exec 虽然能查出来3个结果集,但是好像没法解。想了四种方法解决这样的问题。
1、在B存储过程中先建3张全局临时表T1,T2,T3,然后调用A存储过程,在A存储过程内将3个结果集分别装到T1,T2,T3,调用完毕,回B存储过程查。
2、在B存储过程中建1张临时表T1,列名公用或者就累加,多加一个type的字段,表明是结果集1、结果集2、结果集3,返回后在A存储过程里用Type字段判断来自哪个结果集。
3、在B存储过程中查到3个结果集后,将其转换成字符串,用output传回A存储过程去。
4、多次调用存储过程,利用标记来确定返回哪个集合。
据说output能返回table类型,但是我试验了下,好像不行。 支持( 0 ) 反对( 0 ) maxradish | 园豆:222 (菜鸟二级) | 2019-06-04 16:37 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 我怎么感觉你是把业务逻辑要放到存储过程来实现呢?
个人建议,不要这样干,你这样会增加数据库服务器的负担
最好是业务逻辑在程序中去处理,数库库只是存取数据 程序员修炼之旅 | 园豆:702 (小虾三级) | 2019-06-04 09:32 没有业务逻辑,就是个统计,把结果放到物理表里 支持( 0 ) 反对( 0 ) 少司命& | 园豆:204 (菜鸟二级) | 2019-06-04 09:35 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行