QA SQL Server 데이터베이스를위한 작은 db-cleaner 응용 프로그램을 구축 중입니다. 당연히, 나는 그것들에 의존성이있는 테이블 행들을 삭제할 필요가있다.명시 적으로 모든 종속성을 명시 적으로 참조하지 않고 계단식 삭제
T-SQL 계단식 기능이 매우 제한되어 있으므로 NHibernate를 사용하여 문제를 단순화하려고 시도했습니다. 하지만, 내가 찾은 유일한 방법은 각 종속성에 대한 컬렉션을 객체 - 삭제에 으로 생성하고이를 cascade = delete로 표시하는 것입니다.
즉, 다른 목적으로는 필요하지 않은 많은 콜렉션 (hbm 파일과 C# 객체 모두)을 만드는 것을 의미합니다. 이 방법은 SQL을 사용하는 것만 큼 복잡합니다.
내가 누락 된 항목이 있습니까? delete-cascade를 수행하는 더 쉽고 일반적인 방법이 있습니까?
감사합니다.
EDIT : 프로덕션 DB와 동일하게 디자인 된 QA DB이므로 외래 키를 변경하지 마십시오.
는이 사람은 재귀 당신을 위해 모든 작업을 수행 SP 썼다 :
http://www.sqlteam.com/article/performing-a-cascade-delete-in-sql-server-7
필요한 약간의 터치 업 (
종속성 정의 * 당신의 외래 키 *에. 이는 매우 간단합니다. 열거가 필요하지 않으며 데이터베이스에 적절한 DRI가 필요합니다. 너는 무엇을 더 필요로 하는가? – gbn
내가 무슨 뜻인지 잘 모르겠다. FK는 프로덕션 DB와 동일해야하고 프로덕션 DB가 명백한 이유로 계단식을 지원하지 않으므로 DB에 DELETE CASCADE로 표시되어 있지 않습니다. – Tomata
그러면 비 운영 상태에서 FK를 변경하십시오. – gbn