procB 大概写法
select * from table1 where .............
select * from table2 where .............
reutrn
想在procA里接收procB里返回的俩表,请问我在procA里应该怎么写???
(注:我的procB是个公共存储过程,好几个功能都要调用procB,所以不想修改procB的存储过程。)
17 个解决方案
#1
没办法的
#2
不改木办法。。。
#3
1.返回XML
2.返回表值参数
3.将记录插入其他表/全局临时表
再想想其他的办法
2.返回表值参数
3.将记录插入其他表/全局临时表
再想想其他的办法
#4
数据中转喽
#5
直接调用时必须用参数来传递,而不能接收记录集,如果实在不想改被调过程,那只有在前台先调用过程并形成表,然后再执行调用过程.
#6
返回参数!!!
#7
用返回值标记返回值的含义不行吗??
#8
写个 procC代替procB 返回的内容包装成xml 或者 字符串
然后procA再去调用procC 解析procC的返回值。
直接procA调用 procB行不通的
然后procA再去调用procC 解析procC的返回值。
直接procA调用 procB行不通的
#9
把procB改成两个表值函数呢
#10
procB
insert into #1
select * from table1 where .............
insert into #2
select * from table2 where .............
reutrn
procA
create #1
create #2
exec procB
select * from #1
select * from #2
drop table #1
drop table #2
----?
insert into #1
select * from table1 where .............
insert into #2
select * from table2 where .............
reutrn
procA
create #1
create #2
exec procB
select * from #1
select * from #2
drop table #1
drop table #2
----?
#11
楼主可以考虑用VB或C#等实现。创建一个dataset,通过dataadaptor执行procB然后fill到dataset中,在dataset中应该会产生两张datatable,分别为table0和table1。很久以前实现过,现在记不太清具体过程了。
#12
改成表量函数 存储过程中就可以使用了。
#13
这种需求sql没有办法实现
#14
php100视频教程
#15
procA返回的二個表,如果結構是一樣的,是可以的
如下:
1.
2.
3.執行:
exec sp_procB
如下:
1.
create proc sp_procA
as
select '1' as a,'2' as b
select 'a' as a,'b' as b
2.
create proc sp_procB
as
create table #aa(a char(1),b char(2))
insert into #aa
exec ('sp_procA')
select * from #aa
3.執行:
exec sp_procB
#16
procA返回的二個表,如果結構是一樣的,是可以的
如下:
1.
2.
3.執行:
exec sp_procB
如下:
1.
create proc sp_procA
as
select '1' as a,'2' as b
select 'a' as a,'b' as b
2.
create proc sp_procB
as
create table #aa(a char(1),b char(2))
insert into #aa
exec ('sp_procA')
select * from #aa
3.執行:
exec sp_procB
#17
存储过程的语句一般较为复杂,所以使用多语句表值函数。或者在存储过程中将要使用的表直接写到物理表中,当然这种方法在并发时比较危险。
#1
没办法的
#2
不改木办法。。。
#3
1.返回XML
2.返回表值参数
3.将记录插入其他表/全局临时表
再想想其他的办法
2.返回表值参数
3.将记录插入其他表/全局临时表
再想想其他的办法
#4
数据中转喽
#5
直接调用时必须用参数来传递,而不能接收记录集,如果实在不想改被调过程,那只有在前台先调用过程并形成表,然后再执行调用过程.
#6
返回参数!!!
#7
用返回值标记返回值的含义不行吗??
#8
写个 procC代替procB 返回的内容包装成xml 或者 字符串
然后procA再去调用procC 解析procC的返回值。
直接procA调用 procB行不通的
然后procA再去调用procC 解析procC的返回值。
直接procA调用 procB行不通的
#9
把procB改成两个表值函数呢
#10
procB
insert into #1
select * from table1 where .............
insert into #2
select * from table2 where .............
reutrn
procA
create #1
create #2
exec procB
select * from #1
select * from #2
drop table #1
drop table #2
----?
insert into #1
select * from table1 where .............
insert into #2
select * from table2 where .............
reutrn
procA
create #1
create #2
exec procB
select * from #1
select * from #2
drop table #1
drop table #2
----?
#11
楼主可以考虑用VB或C#等实现。创建一个dataset,通过dataadaptor执行procB然后fill到dataset中,在dataset中应该会产生两张datatable,分别为table0和table1。很久以前实现过,现在记不太清具体过程了。
#12
改成表量函数 存储过程中就可以使用了。
#13
这种需求sql没有办法实现
#14
php100视频教程
#15
procA返回的二個表,如果結構是一樣的,是可以的
如下:
1.
2.
3.執行:
exec sp_procB
如下:
1.
create proc sp_procA
as
select '1' as a,'2' as b
select 'a' as a,'b' as b
2.
create proc sp_procB
as
create table #aa(a char(1),b char(2))
insert into #aa
exec ('sp_procA')
select * from #aa
3.執行:
exec sp_procB
#16
procA返回的二個表,如果結構是一樣的,是可以的
如下:
1.
2.
3.執行:
exec sp_procB
如下:
1.
create proc sp_procA
as
select '1' as a,'2' as b
select 'a' as a,'b' as b
2.
create proc sp_procB
as
create table #aa(a char(1),b char(2))
insert into #aa
exec ('sp_procA')
select * from #aa
3.執行:
exec sp_procB
#17
存储过程的语句一般较为复杂,所以使用多语句表值函数。或者在存储过程中将要使用的表直接写到物理表中,当然这种方法在并发时比较危险。