如何从T-SQL存储过程返回表

Whi*_*ght 4 sql t-sql stored-procedures

SQL新手在这里,我有一段时间找到一个简单的代码示例来回答我认为是一个简单的问题.

我需要编写一个按顺序执行三项操作的存储过程:1)从一个表中选择行2)使用#1中结果表中的值更新另一个表中的行3)从#1返回结果表.

我找不到的是关于如何从存储过程返回这样的值的任何示例.此外,如何从调用者(另一个T-SQL脚本)检索返回的表.

Adr*_*der 5

看看这个.

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
Run Code Online (Sandbox Code Playgroud)

  • 将返回与最后一个选择匹配的行 (3认同)