본문 바로가기

프로그래밍/MSSQL

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

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

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

예문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

'프로그래밍 > 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