외래키가 지정된 상태 또는 다른 제약 조건등으로 인하여 벌크데이터 또는 기존에 입력했던 데이터의 무결성으로 인하여 삽입되지 않을 경우에는 잠시 제약 조건을 비활성 시킬 수 있다.
또는 제약조건을 걸려고 하다보니 기존에 입력되었던 방대한 데이터가 문제가 될 경우에는 제약조건을 걸 수 없는데 이때도 기존 데이타에는 제약을 걸지 않도록 할 수 있다.
예문1) 기존 데이터가 입력된 테이블에 제약조건을 걸어보자
또는 제약조건을 걸려고 하다보니 기존에 입력되었던 방대한 데이터가 문제가 될 경우에는 제약조건을 걸 수 없는데 이때도 기존 데이타에는 제약을 걸지 않도록 할 수 있다.
예문1) 기존 데이터가 입력된 테이블에 제약조건을 걸어보자
ALTER TABLE buyTbl WITH NOCHECK
ADD CONSTRAINT FK_userTbl_buyTbl
FOREIGN KEY (UserId)
REFERENCES userTbl(UserId)
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
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
'프로그래밍 > MSSQL' 카테고리의 다른 글
MSSQL 분할테이블 사용 (0) | 2011.02.08 |
---|---|
MSSQL 분할뷰 사용 (4) | 2011.02.07 |
MSSQL IDENTITY 컬럼 (2) | 2011.02.07 |
MSSQL DB파일의 변경 (4) | 2011.02.07 |
MSSQL DB축소 관련 옵션 (2) | 2011.02.07 |