gpt4 book ai didi

sql - 如何在另一个存储过程中使用存储过程的结果?

转载 作者:行者123 更新时间:2023-12-02 09:22:44 25 4
gpt4 key购买 nike

我有一个存储过程,我想从另一个存储过程中调用它,然后循环访问结果。有点像在存储过程中使用游标而不是 SQL select 语句。我不太明白该怎么做。

我可以得到这样的整个结果:

DECLARE @result int;
EXEC @result = sp_who;
PRINT @result;

有趣的是,这似乎将 @result 的类型更改为 int 以外的类型,但无论如何。然后我如何逐行循环结果?如何访问各个列中的数据?例如,我如何终止第四列(登录名)类似于“%gatesb”或其他内容的进程?

最佳答案

您可以声明一个表变量来保存存储过程的结果,然后在 while 循环中循环遍历它们:

declare @temp table (
idx int identity(1,1),
field1 int,
field2 varchar(max))

declare @result int

insert into @temp (field1, field2)
exec @result = sp_who

declare @counter int

set @counter = 1

while @counter < (select max(idx) from @temp)
begin
-- do what you want with the rows here
set @counter = @counter + 1
end

关于sql - 如何在另一个存储过程中使用存储过程的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/861187/

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