2012-12-19 4 views
0

삽입 쿼리를 실행하는 동안 끝없는 무한 루프가 발생합니다. 결코 끝나지 않습니다. 다음은이 차단 문제가 아니라 루프 것을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 
+0

루프는 어디에 있습니까? 내가보기에는 두 개의 간단한 insert 문만 있습니다. – dan1111

+0

실제로 발생하는 것은 무엇입니까? 이 SP를 실행하면 결코 반환되지 않습니까? dan1111'SCOPE_IDENTITY' @ –

+2

() 함수 –

답변

1

확율이 높은 내 쿼리입니다.

이 실행 중에 SSMS를 열고 SP_WHO2 ACTIVE를 실행하십시오. 그것은 당신에게 뭔가를하고있는 모든 spids를 보여줄 것입니다. 당신이 거기에있을 것입니다. 'BlkBy'열이 있습니다. 해당 열에 숫자가 있으면 쿼리가 차단되고 (다른 프로세스가 잠금을 완료하고 잠금을 해제 할 때까지 대기) 쿼리가 차단 된 세션의 번호입니다. 그 세션이 무엇을하고 있는지 조사하면 대답을 얻을 수 있습니다.