SQL

[MSSQL] 외래키등 제약조건으로 인해 삽입이 안될때 잠시 제약을 꺼두자

요지 2013. 1. 14. 17:15

외래키가 지정된 상태 또는 다른 제약 조건등으로 인하여 벌크데이터 또는 기존에 입력했던 데이터의 무결성으로 인하여 삽입되지 않을 경우에는 잠시 제약 조건을 비활성 시킬 수 있다.

또는 제약조건을 걸려고 하다보니 기존에 입력되었던 방대한 데이터가 문제가 될 경우에는 제약조건을 걸 수 없는데 이때도 기존 데이타에는 제약을 걸지 않도록 할 수 있다.

예문1) 기존 데이터가 입력된 테이블에 제약조건을 걸어보자

ALTER TABLE buyTbl WITH NOCHECK
ADD CONSTRAINT FK_userTbl_buyTbl
FOREIGN KEY (UserId)
REFERENCES userTbl(UserId)

예문2) - 제약조건을 무시하고 데이터를 삽입해 보자

ALTER TABLE buyTbl
NOCHECK CONSTRAINT FK_userTbl_buyTbl
GO
INSERT INTO buyTbl VALUES (N'CJC', N'메모리', N'전자', 80, 10)
INSERT INTO buyTbl VALUES (N'AJH', N'책', N'서적', 15, 5)
GO
ALTER TABLE buyTbl
CHECK CONSTRAINT FK_userTbl_buyTbl

 

 

출처 :  http://niceit.tistory.com/98