【发布时间】:2022-01-02 18:42:39
【问题描述】:
我的存储过程在执行时返回了 3 组数据。那个时候我想要一些临时表的第二组结果。
例如:我的存储过程正在返回这些结果集:
-----------------------------
Sno EmpName EmpNo
-----------------------------
1 Test1 101
2 Test2 102
---------------------------------
ID StudentName StudentDOB
---------------------------------
1 abc1 10-10-2020
2 xyz 14-12-2018
----------------------------------------------------------
Sno Start_Time End_Time Duration
----------------------------------------------------------
1 10-10-2021 10:00:00 10-10-2021 10:10:00 10
2 10-10-2021 10:00:00 10-10-2021 10:15:00 15
我想将第二组结果放入某个临时表中。如何只获取特定的结果集?
这是我的存储过程:
CREATE PROCEDURE test
AS
BEGIN
SELECT * FROM test1
SELECT * FROM test2
SELECT * FROM test3
END
执行测试 --> 我想将仅 test2 的 test2 表结果设置为另一个临时表。
【问题讨论】:
-
存储过程(SQL Server)
-
My SQL 存储过程返回多个表格式结果集。我只想拿必要的桌子。如何获得?
-
在 TSQL 中无法做到这一点。如果您这样做是为了测试和使用 tSQLt,您可以使用
tSQLt.ResultSetFilter但这最终会使用 CLR 来完成。对于仅 TSQL 的解决方案,要么将您的 proc 分解为可以单独调用的多个 proc,或者添加一个参数以允许抑制不需要的结果集 -
您需要进一步解释您在什么情况下尝试在临时表中访问这些结果,您研究和尝试了什么以及您遇到的问题。
-
只需将参数传递给您的 SP 以指示它是否应该返回结果集或插入临时表。
标签: sql-server