gpt4 book ai didi

sql - 如何防止 SQL 返回多个结果集

转载 作者:行者123 更新时间:2023-12-01 10:04:19 25 4
gpt4 key购买 nike

我面临的问题是我有一个存储过程(我们称之为 sp_one),它在运行期间调用另一个存储过程(我们称之为 sp_two)。

我只希望最后返回 sp_one 的结果集,而不是 sp_two 的结果集。我想有一种方法可以捕获 sp_two 的结果,这将阻止它们也被返回,但还无法弄清楚它的语法。

有什么想法吗?

一些伪代码捕捉了正在发生的事情的本质(不是我的实际代码):

CREATE PROCEDURE sp_two AS 
BEGIN
update Users
set is_valid = 0

select * from Users
END


CREATE PROCEDURE sp_one
AS
BEGIN
exec sp_two
select * from Users
END

exec sp_one

运行 exec sp_one 的结果是 sp_two 的结果集,然后是 sp_one 的结果集。 (例如,用户表两次)。

最佳答案

首先,这是一个similiar question

我不推荐使用这种解决方案,因为它很容易成为瓶颈。我会说你应该专注于以更清晰的方式进行数据处理(但我知道你的问题的例子只是一个理论例子)

但如果你真的想使用这样的东西,我会说衡量返回行的危险:

1:返回多少行?

2:返回集有多宽?

如果您认为“没关系,这没什么大不了的”,那么我会说使用内存表而不是临时表(不要进行物理写入):

DECLARE @users TABLE (...fields here...)
INSERT INTO @users
EXEC sp_two

关于sql - 如何防止 SQL 返回多个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12265705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com