我有一个名为@rows的临时变量,在这样的存储过程中有近10000条记录
Create Procedure input
as
begin
declare @input_data table(......)
insert into (.....) from ....
@rows= select @@rowcount
while(@rows > o)
begin
--- I need to process each row like
select ... where @row=1 --like this repeatedly upto @rows = 10000
end
我该如何实现这一目标。请帮助我 提前致谢
答案 0 :(得分:0)
您可以根据某些条件直接更新表格,并使用使用while循环的CASE语句。
答案 1 :(得分:0)
您可以使用游标
来实现目标DECLARE @ID AS INT
DECLARE TestCursor CURSOR
FOR (SELECT ID FROM Test)
OPEN TestCursor
FETCH NEXT FROM TestCursor INTO @ID
WHILE @@Fetch_Status = 0
BEGIN
--Your Code Here
PRINT @ID --Print For Testing
FETCH NEXT FROM TestCursor INTO @ID
END
CLOSE TestCursor
DEALLOCATE TestCursor
请记住:使用游标会导致性能下降 而是在查询条件选择/更新中使用CASE语句,如另一个答案
中所述