SQL 儲存過程裡呼叫另一個儲存過程

哪些年那些事 發表於 2021-04-03
SQL

由於建立了一個儲存過程,並且要在另一個儲存過程裡呼叫這個儲存過程所以在網上找了一下相關的程式碼,現在總結一下,防止以後還會用到

由於這次我寫的儲存過程只需要返回一個求和的結果,所以我使用了output 引數,即執行了儲存過程以後返回一個值

具體程式碼如下:

CREATE PROCEDURE [dbo].[t1]
 @tes1 float outPut
AS
BEGIN
 select @tes1=(select  top 1 id from tb1)
END

呼叫上面的儲存過程

CREATE PROCEDURE [dbo].[t2]
AS
BEGIN
 declare @tes1 float
 exec t1 @tes1 output
 select @tes1
END
另外一種獲取在儲存過程裡呼叫另一個儲存過程的結果集的方法就是建立一個臨時表,只要這個臨時表的結構和執行儲存過程後的結果

一樣就可以,如果返回的是一個值就用 insert  into #時表名 exec 儲存過程名

PS:如果要向呼叫的資料庫傳入引數,可以直接將將引數放到要執行的儲存過程後面就可以了