SQL新手在这里,我很难找到一个简单的代码示例来回答我认为是一个简单的问题。
我需要编写一个按顺序执行三项操作的存储过程: 1)从一个表中选择行 2)使用#1中结果表中的值更新另一个表中的行 3)从#1返回结果表。
我找不到的是关于如何从存储过程返回这样的值的任何示例。此外,如何从调用者(这是另一个T-SQL脚本)检索返回的表。
答案 0 :(得分: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