UPDATE_RULE
을 외래 키 제약 조건으로 설정하고 데이터베이스에서 'NO ACTION'
으로 설정하고이 규칙을 'CASCADE'
으로 변경하려고합니다. 그래서, 먼저 제약 조건을 삭제하고 다시 추가해야한다는 것을 알고 있습니다.SQL 서버 - 동적으로 모든 외래 키 제약 조건을 변경합니다.
이렇게하려면 다음 쿼리를 사용하여 모든 관련 제약 조건을 얻은 다음 각 행을 반복하고 제약 조건을 삭제하는 동적 SQL 쿼리를 작성한 다음 다시 추가하십시오. UPDATE_RULE
값.
그러나 제약 조건을 추가하려면 기본 키가 정의 된 테이블 이름이 필요하며 쿼리에이 테이블 이름이 필요하지 않습니다. 외래 키가있는 테이블 이름 만 있습니다 :
SELECT *
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC
INNER JOIN INFORMATION_SCHEMA.table_constraints AS CU
ON CU.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG
AND CU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
WHERE UPDATE_RULE = 'NO ACTION'
어떻게해야합니까? UPDATE_RULE
값만 변경하면됩니다.