CHECK 제약 조건 만들기

적용 대상: 예SQL Server(지원되는 모든 버전) 예Azure SQL Database

SQL Server 에서 SQL Server Management Studio 또는 Transact-SQL을 사용하여 하나 이상의 열에 사용할 수 있는 데이터 값을 지정할 수 있도록 테이블에 CHECK 제약 조건을 만들 수 있습니다.

항목 내용

시작하기 전에

보안

권한

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

SQL Server Management Studio 사용

새 CHECK 제약 조건을 만들려면

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

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

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

    SellEndDate >= SellStartDate OR SellEndDate IS NULL  
    

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

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

    참고

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

  4. 확인 을 클릭합니다.

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

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

    다음으로 변경: 다음 필드에서 예 선택:
    제약 조건을 만들기 전에 존재한 데이터에 대한 제약 조건 테스트 만들거나 활성화할 때 기존 데이터 검사
    이 테이블에서 복제 작업이 수행될 때마다 제약 조건 적용 복제에 적용
    이 테이블의 행을 삽입하거나 업데이트할 때마다 제약 조건 적용 INSERT 및 UPDATE에 적용
  7. 닫기 를 클릭합니다.

Transact-SQL 사용

새 CHECK 제약 조건을 만들려면

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

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

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

    ALTER TABLE dbo.DocExc   
       ADD ColumnD int NULL   
       CONSTRAINT CHK_ColumnD_DocExc   
       CHECK (ColumnD > 10 AND ColumnD < 50);  
    GO  
    -- Adding values that will pass the check constraint  
    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);  
    GO  
    -- Adding values that will fail the check constraint  
    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);  
    GO  
    
    

자세한 내용은 ALTER TABLE(Transact-SQL)을 참조하세요.