Tal*_*Guy 11 sql sql-server stored-procedures
我有一个存储过程,我想从另一个内部调用,然后循环结果.有点像使用带有存储过程的游标而不是SQL select语句.我无法弄明白该怎么做.
我可以像这样得到整个结果:
DECLARE @result int;
EXEC @result = sp_who;
PRINT @result;
Run Code Online (Sandbox Code Playgroud)
有趣的是,这似乎将@result的类型改为int以外的东西,但无论如何.然后,我如何逐行循环结果?如何访问各列的数据?例如,我如何杀死第四列(loginname)就像'%gatesb'或其他什么的进程?
Jus*_*ner 13
您将声明一个表变量来保存存储过程的结果,然后在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15122 次 |
| 最近记录: |