2011-01-04 4 views
2

하나의 데이터베이스에서 다른 데이터베이스로 모든 데이터를 복사하려고하지만 쉽게 삽입 할 수없는 외래 키가 많은 문제가 있습니다. 외래 키를 비활성화하고 데이터를 삽입 한 다음 다시 활성화하려고합니다. 가장 쉬운 방법은 무엇입니까?SQL 서버에서 임시로 제약 조건 해제

감사합니다, 이반

답변

3
-- disable the check_sale constraint in the employee table 
ALTER TABLE employee NOCHECK CONSTRAINT check_sale 

-- enable the check_sale constraint in the employee table 
ALTER TABLE employee WITH CHECK CHECK CONSTRAINT check_sale 

모든 제약 조건을 검색하고 그들 모두를 비활성화 할 수 있습니다 스크립트 범위가 여러 테이블 경우.

USE AdventureWorks; 
GO 
SELECT OBJECT_NAME(OBJECT_ID) AS NameofConstraint, 
SCHEMA_NAME(schema_id) AS SchemaName, 
OBJECT_NAME(parent_object_id) AS TableName, 
type_desc AS ConstraintType 
FROM sys.objects 
WHERE type_desc LIKE '%CONSTRAINT' 
GO 

http://www.mssqlcity.com/Articles/General/using_constraints.htm

+0

이 신뢰할 수없는 상태를 벗어나게됩니다. 'WITH CHECK' 옵션을 사용하여 쿼리 최적화 프로그램이이를 사용할 수 있도록해야합니다. c.f. [통계 및 쿼리 최적화 도구에 대해 알아야 할 13 가지 사항] (http://www.simple-talk.com/sql/t-sql-programming/13-things-you-should-know-about-statistics-and- the-query-optimizer /)는 9와 10을 가리킨다. –

+0

데이터가 유효하지 않을 것이라는 점은 분명하다. –

+2

다시 활성화하는 방법은 문제입니다. 자세한 내용은 여기 http://www.mssqltips.com/tip.asp?tip=1539 –