MSSQL 을 사용하다 유지관리계획의 작업을 삭제를 하려고 하면 아래와 같은 에러 메시지가 나온다.
DELETE 문이 REFERENCE 제약 조건 “FK_subplan_job_id”과(와) 충돌했습니다. 데이터베이스 “msdb”, 테이블 “dbo.sysmaintplan_subplans”, column ‘job_id’에서 충돌이 발생했습니다.
문이 종료되었습니다. (Microsoft SQL Server, 오류: 547)도움말을 보려면 다음을 클릭하십시오: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=13.00.5026&EvtSrc=MSSQLServer&EvtID=547&LinkId=20476
아래 이미지와 같이 작업에서 DAY_BACKUP 작업관리를 삭제하려면 에레메시지가 발생된다.
원인은 sysmainplan_plans 테이블의 ID값과 해당 작업의 로그가 쌓이는 sysmaintplan_log의 ID값이 서로 다르기 때문에 발생한다.
그럼 이제 이럴경우 삭제하는 방법을 간단하게 알아보자.
1.먼저 삭제할 작업의 목록을 선택 후 작업 스크립팅 -> DROP -> 새쿼리 편집기 창을 클릭한다.
2. 쿼리 실행창이 나타나며 job_ip가 확인된다 이 job_id를 복사를 한다.
3. 새쿼리 창을 뛰어서 아래와 같이 명령어를 입력한다
1 2 |
use master select * from msdb.dbo.sysmaintplan_subplans where job_id='19c04eaf-2ec4-47fe-816c-0ba0d23874d88' |
명령어를 입력하면 plan_id값이 출력된다 이제 이 값을 복사하자
4. 위에서 확인된 plan_id값을 복사하였으며 아래와 같이 delete 쿼리문으로 삭제를 해준다
1 2 3 4 |
use master delete from msdb.dbo.sysmaintplan_log where plan_id='8759DB1-A425-47F8-94C3-0B0DCF177277'
delete from msdb.dbo.sysmaintplan_subplans where plan_id='8759DB1-A425-47F8-94C3-0B0DCF177277' |
5.이제 삭제에서 에러가 났던 부분을 삭제를 해보자 정상적으로 삭제가 된 것을 확인 할 수 있다.
모두 정상적으로 삭제가 완료된 상태
'Database > SQL Server' 카테고리의 다른 글
SORT WARNING & HASH WARNING (0) | 2021.02.02 |
---|---|
SQL Server 버퍼 캐시에 대한 통찰력 (0) | 2021.01.27 |
SQL Server 쿼리가 느려졌을 때 (0) | 2021.01.20 |
SQL Server 백업/복원 예상 완료시간 확인하기 (0) | 2021.01.20 |
DB Backup Script (0) | 2021.01.20 |