国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寿宁县| 舒兰市| 永仁县| 彰化县| 兴宁市| 建始县| 从江县| 伊金霍洛旗| 佛坪县| 阳朔县| 井陉县| 光山县| 正蓝旗| 辽中县| 吕梁市| 宁陕县| 射洪县| 京山县| 溧水县| 景东| 防城港市| 诸暨市| 西贡区| 衡南县| 普洱| 东宁县| 肇源县| 青神县| 双桥区| 金华市| 通许县| 渑池县| 龙海市| 平舆县| 玛纳斯县| 揭西县| 朝阳区| 白沙| 丹阳市| 濮阳县| 正阳县|