国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在存儲過程中執行別的存儲過程并獲取其返回的結果集

2024-07-21 02:50:33
字體:
來源:轉載
供稿:網友
在存儲過程中執行別的存儲過程并獲取其返回的結果集

背景

  在sqlserver存儲過程的編寫過程中,通常會碰到繁雜的業務邏輯,將一個大的存儲過程拆分成多個小存儲過程來做是常用的做法。

問題

  在存儲過程A中需要調用存儲過程B,而存儲過程B返回一個Table,A需要獲取到B的Table,再進行下一步的處理。

  本文解決的問題是:如何在A中執行B,并獲取B的返回Table

思路

  1.   在A中使用Exec來執行存儲過程B
  2.   在A中定義臨時表,并將B返回的數據插入臨時表中

步驟

  •   新建一張測試表,并批量向表中插入若干數據
    • CREATE TABLE TestTable ( ID INT )INSERT  INTO TestTable        SELECT  1        UNION        SELECT  2        UNION        SELECT  3        SELECT * FROM TestTable
  •   新建存儲過程B,B會返回一張Table
    • CREATE PROCEDURE [dbo].[UP_B]ASBEGIN      SELECT ID,'ComeFromB' FROM TestTable       END
  •   新建存儲過程A,A調用B,并將B返回的Table插入到A定義的臨時表中
    • CREATE PROCEDURE [dbo].[UP_A]ASBEGIN      CREATE TABLE #Temp (ID INT,Msg VARCHAR(30))      INSERT INTO #Temp EXEC UP_B            SELECT * FROM #Temp     END
  •   執行結果
  • 全部代碼
CREATE TABLE TestTable ( ID INT )INSERT  INTO TestTable        SELECT  1        UNION        SELECT  2        UNION        SELECT  3goCREATE PROCEDURE [dbo].[UP_B]ASBEGIN      SELECT ID,'ComeFromB' FROM TestTable       ENDgoCREATE PROCEDURE [dbo].[UP_A]ASBEGIN      CREATE TABLE #Temp (ID INT,Msg VARCHAR(30))      INSERT INTO #Temp EXEC UP_B            SELECT * FROM #Temp     ENDgoEXEC [UP_A]go


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广东省| 开原市| 庄浪县| 太仓市| 三门峡市| 岢岚县| 通榆县| 本溪| 和林格尔县| 钦州市| 商河县| 贵定县| 怀仁县| 济阳县| 北海市| 横山县| 潞城市| 疏勒县| 绥宁县| 包头市| 云霄县| 永宁县| 延安市| 安远县| 开江县| 京山县| 大连市| 乃东县| 萝北县| 雷波县| 天祝| 永修县| 公主岭市| 台前县| 临清市| 余干县| 昔阳县| 全椒县| 托里县| 肇源县| 平南县|