CHECK 제약 조건 만들기

적용 대상:SQL ServerAzure SQL 데이터베이스Azure SQL Managed Instance

테이블에 CHECK 제약 조건을 만들어 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server의 하나 이상의 열에서 허용되는 데이터 값을 지정할 수 있습니다. 열 제약 조건을 추가하는 방법에 대한 자세한 내용은 ALTER TABLE column_constraint를 참조하세요.

자세한 내용은 고유성 제약 조건 및 CHECK 제약 조건을 참조하세요.

설명

기존 검사 제약 조건을 쿼리하려면 sys.check_constraints 시스템 카탈로그 뷰를 사용합니다.

사용 권한

테이블에 대한 ALTER 권한이 필요합니다.

SQL Server Management Studio 사용

  1. 개체 탐색기에서 CHECK 제약 조건을 추가하려는 테이블을 확장하고, 제약 조건을 마우스 오른쪽 단추로 클릭한 후 새 제약 조건을 선택합니다.

  2. CHECK 제약 조건 대화 상자에서 필드를 선택한 후 줄임표(...)를 선택합니다.

  3. CHECK 제약 조건 식 대화 상자에서 CHECK 제약 조건에 대한 SQL 식을 입력합니다. 예를 들어 Product 테이블 SellEndDate 열의 항목을 SellStartDate 열의 날짜보다 크거나 같은 값으로 또는 NULL 값으로 제한하려면 다음을 입력합니다.

    SellEndDate >= SellStartDate
    

    또는 zip 열의 항목이 다섯 자리 숫자가 되도록 하려면 다음을 입력합니다.

    zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
    

    참고 항목

    숫자가 아닌 제약 조건 값을 작은따옴표(')로 묶어야 합니다.

  4. 확인을 선택합니다.

  5. ID 범주에서 CHECK 제약 조건 이름을 변경하고 제약 조건에 대한 설명(확장 속성)을 추가할 수 있습니다.

  6. 테이블 디자이너 범주에서 제약 조건이 적용되는 시기를 설정할 수 있습니다.

    작업 다음 옵션 중에서 Yes을(를) 선택합니다.
    제약 조건을 만들기 전에 존재했던 데이터에 대한 제약 조건 테스트 만들거나 사용하도록 설정할 때 기존 데이터 검사
    이 테이블에서 복제 작업이 수행될 때마다 제약 조건 적용 복제에 적용
    이 테이블의 행을 삽입하거나 업데이트할 때마다 제약 조건 적용 INSERT 및 UPDATE에 적용
  7. 닫기를 선택합니다.

Transact-SQL 사용

  1. 개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다.

    먼저, 제약 조건을 만듭니다.

    ALTER TABLE dbo.DocExc
    ADD ColumnD INT NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (
        ColumnD > 10
        AND ColumnD < 50
    );
    GO
    

    제약 조건을 테스트하려면 우선 CHECK 제약 조건을 전달할 값을 추가합니다.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
    

    다음으로, CHECK 제약 조건에 실패하는 값을 추가해 봅니다.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);