如何使用rowcount获取第一行详细信息?

时间:2012-09-21 07:42:28

标签: sql rowcount

我有一个名为@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

我该如何实现这一目标。请帮助我 提前致谢

2 个答案:

答案 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语句,如另一个答案

中所述