执行插入查询时,我得到了无限的无限循环(我想是这样)。它永远不会结束。 以下是我的查询
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
答案 0 :(得分:0)
这是一个很大的障碍,这是一个阻塞问题,而不是循环。
在运行时,打开SSMS并运行SP_WHO2 ACTIVE。它会告诉你正在做某事的所有spid - 你的将在那里。有一个列'BlkBy' - 如果该列中有一个数字,则查询被阻止(等待另一个进程完成并释放其锁定),这就是阻止查询的会话数。调查那个会话正在做什么,你会得到答案。