在存储过程中对返回的结果运行foreach循环。

时间:2014-04-23 21:56:19

标签: sql sql-server stored-procedures

我有一个从table1返回结果的存储过程,然后我将该结果用于另一个存储过程来更新table2。我想知道我是否可以将它合并到一个存储过程中,问题是它需要根据table1中的值运行table2上的foreach循环以查找要更新的所有值。不知道从哪里开始或者甚至可能。

1 个答案:

答案 0 :(得分:0)

这是为每个项目运行某些内容的示例。但是对于更新你不应该需要这个,你应该能够用CROSS JOIN来解决这个问题,无论如何都是如下。

 declare @i int;
set @i = 0;
declare @t table
(
int id identity,
varchar(max) col1,
varchar(max) col2
)

insert into @t(col1,col2)
select col1,
        col2 from  FROM        [Table]


set i = 0;
declare @sum int
set @sum = 0;
while(i < select count(*) from @t)
begin 
 select case when (col1 == col2) then @sum = @sum+1 else @sum from @t
where id = i;
i++;
end