2016-11-17 2 views
3

무한 루프가있는 방아쇠를 만들어서 정말 바보 같은 짓을했다고 가정 해 봅시다. 중첩되지 않거나 재귀 적입니다. 난 그냥 WHILE 루프가 분명히 종료되지 않습니다.무한 루프에서 트리거를 중지하려면 어떻게합니까?

이제 트리거에 액세스 할 수 없습니다. 업데이트 할 수 없으며 삭제할 수 없으며 비활성화 할 수 없습니다. 그리고 그것이 첨부 된 테이블을 사용하는 프로그램 중 어느 것도 테이블 때문에 아무 것도 할 수 없습니다. 나는 SQL Server를 끝까지 빠져 나갔다.하지만 내가 들어올 때 같은 문제가 생겼다.

그 방아쇠를 죽일 방법이 있습니까?

열기/실행 SSMS를 문제의 서버에 연결 : 여기에 필요한 권한이 있는지 제공

+0

제작 중이십니까? 서버를 다시 부팅 할 수 있습니까? –

+0

운 좋게도 저는 개발 환경에 있습니다. 서버를 재부팅 할 수있는 권한이 없지만 담당자에게 요청할 수 있습니다. – DaveX

+1

또는 EXEC sp_who2를 사용하면 모든 활성 연결을 알 수 있습니다.이 중 하나인지 확인한 다음 죽일 수 있습니다 (힌트 : DBCC INPUTBUFFER (spid)를 사용하여 어떤 명령이 실행 중인지 확인하십시오) –

답변

3

은 당신이 할 수있는 것입니다. 변경, 올바른 데이터베이스 SSMS에서

를 사용 SP_Who2

이 당신에게 모든 연결의 목록을 제공

, 그들의 상태를 실행합니다. 그 연결이 트리거를 실행하는 경우

어떤 하나 개의 연결 SPID#을 가지고 DBCC INPUTBUFFER (SPID#)

를 실행, 당신은 다음 트리거를 피하는 이유에 대해 읽어

KILL SPID#을 실행하여 연결을 죽일 수 있습니다.

관련 문제