簡體   English   中英

如何從T-SQL存儲過程返回表

[英]How to return table from T-SQL Stored Procedure

SQL新手在這里,我有一段時間找到一個簡單的代碼示例來回答我認為是一個簡單的問題。

我需要編寫一個按順序執行三項操作的存儲過程:1)從一個表中選擇行2)使用#1中結果表中的值更新另一個表中的行3)從#1返回結果表。

我找不到的是關於如何從存儲過程返回這樣的值的任何示例。 此外,如何從調用者(另一個T-SQL腳本)檢索返回的表。

看看這個。

DECLARE @Table1 TABLE(
        ID INT,
        VAL int
)

INSERT INTO @Table1 (ID,VAL) SELECT 1, 1
INSERT INTO @Table1 (ID,VAL) SELECT 2, 2
INSERT INTO @Table1 (ID,VAL) SELECT 3, 3

DECLARE @Table2 TABLE(
        ID INT,
        VAL VARCHAR(MAX)
)

INSERT INTO @Table2 (ID,VAL) SELECT 1, 1
INSERT INTO @Table2 (ID,VAL) SELECT 2, 2
INSERT INTO @Table2 (ID,VAL) SELECT 3, 3

--Lets say this is the 2 tables


--now this will go into the sp
UPDATE  @Table1
SET     Val = t1.Val + t2.Val
FROM    @Table1 t1 INNER JOIN
        @Table2 t2 ON t1.ID = t2.ID

SELECT  t1.* 
FROM    @Table1 t1 INNER JOIN
        @Table2 t2 ON t1.ID = t2.ID


--and you can insert into a var table in the tsql script that calls the sp

DECLARE @Table1TSQL TABLE(
        ID INT,
        VAL int
)

INSERT INTO @Table1TSQL (ID,VAL) EXEC YourSP

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM