SQL查询中的无限循环



执行插入查询时,我得到了无尽的无限循环(我认为是这样)。它永远不会结束。以下是我的查询

ALTER proc [dbo].[InsertNomineeImage] 
@UserId int,
@ContestId int,
@ImagePath varchar(150),
@Name varchar(50),
@Description varchar(500)
As
BEGIN
    Begin TRY
        BEGIN TRAN
        Declare @Id as int
        insert into UserImages(UserId,ImagePath,Name,Description,IsActive) 
        values(@UserId,@ImagePath,@Name,@Description,'False')
        set @Id=SCOPE_IDENTITY();

        Insert into UserContestImages(UserId,ContestId,UserImage,ParticipationDate,IsActive) 
        values (@UserId,@ContestId,@Id,GETDATE(),'False')
        COMMIT TRAN
    END TRY
    BEGIN CATCH
        IF @@ERROR > 0
            ROLLBACK TRAN
    END CATCH

End

奇数很高,这是一个阻止问题,而不是循环。

在运行时,打开SSM并运行SP_WHO2活动。它将向您展示所有正在做某事的蜘蛛 - 您的将在那里。有一个列" blkby" - 如果该列中有一个数字,则查询被阻止(等待另一个过程完成并释放其锁定),这就是阻止查询的会话的数量。调查该会话在做什么,您将得到答案。

最新更新