用SQL語句獲得一個存儲過程返回的表


定義一個存儲過程如下:

create proc [dbo].[test1]
@id int
as
select 1 as id,'abc' as name union all
select @id as id,'zzz' as name

返回兩行數據.
現在想用SQL語句來調用這個存儲過程,並把他返回的表放入變量中.可以如下做:

declare @table table(id   int,name varchar(50))--定義表變量來存放存儲過程返回的內容
insert into @table exec test1 2--將存儲過程執行的結果放入表變量中
select *
from @table --查看表變量中的結果

-------------------------------------------------------------------------------------------------

使用心得:

原先准備直接通過存儲過程的output變量返回table,發現失敗,

換成函數可以返回,但函數內部禁用了很多系統函數,例如exec,無法實現復雜的sql,

最終,通過存儲過程直接

“insert into @table exec test1 2--將存儲過程執行的結果放入表變量中”

的方式,將存儲過程的返回值放入臨時表變量,間接實現返回表變量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM