执行插入查询时,我得到了无尽的无限循环(我认为是这样)。它永远不会结束。以下是我的查询
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" - 如果该列中有一个数字,则查询被阻止(等待另一个过程完成并释放其锁定),这就是阻止查询的会话的数量。调查该会话在做什么,您将得到答案。