두 개의 테이블이 있다고 가정 해보십시오. Errors
및 ErrorsDetails
. 그래서 많은 ErrorDetails 레코드를 포함 할 수있는 하나의 Errors 레코드가 있습니다.SQL Server 2008에서 모든 세부 레코드가 삭제 될 때 자동으로 마스터 레코드를 삭제하려면 어떻게합니까?
사용자는 주기적으로 세부 레코드를 사용하는 응용 프로그램을 통해 삭제합니다. 모든 세부 레코드가 정리 (삭제)되면 마스터 레코드도 자동으로 삭제하고 싶습니다.
멋진 것은 마스터가 더 이상 세부 정보를 소유하지 않은 경우 세부 정보와 마스터를 삭제하는 SQL 삭제 명령문입니다. 그러나 나는 그것을 수행하는 깨끗한 SQL 문을 얻는 것처럼 보이지 않습니다. 매번 삭제할 때마다 마스터에게 세부 사항을 폴링하지 않을 것입니다.
오류
ID Error
1 Import Error
2 Export Error
ErrorsDetails
ID ErrorsID DetailedInfo
1 1 Couldn't import file because of FTP error
2 1 Couldn't import file because of permission error
3 2 Couldn't export file because of directory doesn't exist
는 그래서 같은 cascade
삭제 제약 조건을 추가하는 시도했지만 작동하지 않았다.
alter table dbo.ErrorsDetails
add constraint FK_Delete_Master
foreign key (ErrorsID) references dbo.Errors(ErrorsID) on delete cascade
의견을 보내 주셔서 감사합니다.
트리거를 사용하여 언급 된 것
UPDATE. 나는 그것에 대해 생각했지만 언급하지 않았다. 방아쇠는 분명히 그 일을 할 것입니다. 이 시나리오에서 트리거의 장점/단점? 당신이 사용할 수있는
내가 트리거에 대해 생각했다. 나는 원래의 질문에서 언급 했어야했다. 트리거의 장점/단점? – cbmeeks