2008年10月16日 星期四

在SP中接其他SP的回傳資料結果

一直都認為,在SP(Store Procedure)中若要去取得另一支SP的執行結果是件很困難的事。後來發現其實沒這麼難啦,只要事先建好一個暫存資料表,再把另一支 SP 的結果傳進暫存表即可。

以下是程式範例:

--建立暫存表
create table  #tmp(
com_cname nvarchar(20),
com_empno nvarchar(20),
com_empdept nvarchar(20),
com_empext nvarchar(20)
)

--將另一支SP (esp_comper_query ) 的執行結果存到暫存表
insert into #tmp
exec esp_comper_query '526278'

select * from #tmp

drop table #tmp

=====================
補充: 20090306
=====================
如果你採用這方式,但有另一支sp也是透過你寫的sp並傳回結果,則會出現
An INSERT EXEC statement cannot be nested.
所以要避免發生巢狀使用的方式。

沒有留言:

張貼留言