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

Sql 如何使用rowcount获取第一行详细信息?,sql,rowcount,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

我有一个名为@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
我应该如何做到这一点。请帮助我
提前感谢

您可以根据某些条件和使用CASE语句直接更新表,而不是使用while循环。

您可以使用光标来实现您的目标

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语句,如另一个答案中所述,循环/游标很少是SQL操作中的最佳方法。它是一种基于集合的语言,通常还没有找到基于集合的解决方案。也许考虑一个新的问题来帮助找到基于集合的解决方案,而不是寻求帮助来修复程序性的解决方案。就性能而言,它几乎肯定会带来回报(我不能提供任何建议,因为我不知道您对每一行都做了什么)。我如何使用案例陈述来实现这一点?请给我举一些例子。您真的需要更新/选择多个记录(所有记录)还是单个记录?你的目标不是100%明确!请再解释一下,我怎样才能使用案例陈述呢?请给我举一些例子,如果你告诉我要更新什么和表结构,那么我可以提供帮助