sql-server-2008 - 使用 insert into 进行光标循环无限循环

标签 sql-server-2008 cursor infinite-loop insertion

我想使用光标插入数据。

ALTER PROCEDURE [dbo].[VehBlocMajStatut] 
-- Add the parameters for the stored procedure here
@NO_Veh int,
@Statut int

AS
BEGIN

DECLARE @Temp_appel int
DECLARE appel_cursor CURSOR FOR 
SELECT NO_APPEL FROM ESPMEDS_LS_APPVEH WHERE NO_VEHICULE = @NO_Veh

OPEN appel_cursor;

FETCH NEXT FROM appel_cursor INTO @Temp_appel;

WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO ESPMEDS_LS_APPVEH (NO_VEHICULE, NO_APPEL, STATUT, DATEVEH)
    VALUES (@NO_Veh, @Temp_appel, @Statut, GETDATE())

    FETCH NEXT FROM appel_cursor INTO @Temp_appel;


END
close appel_cursor
deallocate appel_cursor
END

不幸的是,它变成了无限循环。当我评论 INSERT INTO 子句时,它可以正常工作。

如何使用光标进行插入?

最佳答案

不需要光标。

INSERT INTO ESPMEDS_LS_APPVEH 
    (NO_VEHICULE, NO_APPEL, STATUT, DATEVEH)
    SELECT @NO_Veh, NO_APPEL, @Statut, GETDATE()
        FROM ESPMEDS_LS_APPVEH 
        WHERE NO_VEHICULE = @NO_Veh

关于sql-server-2008 - 使用 insert into 进行光标循环无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6060444/

相关文章:

sql-server-2008 - SQL Server Set变量(如果存在),否则插入到表中

java - 知道为什么我的 getColumnIndex() 通过 android 返回 -1 吗?

c++ - 陷入无限循环

javascript - 避免无限循环

c++ - 在链表末尾插入和无限循环

sql - 删除作为另一个表的外键的主键行

c# - 优化 Entity Framework

sql - Varchar 上的索引?

oracle - 如何在 Oracle 中查找当前打开的游标

oracle - ORA-01007 : variable not in select list