CHECK 제약 조건 만들기Create Check Constraints

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)예Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL Server 2017SQL Server 2017 에서 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 하나 이상의 열에 사용할 수 있는 데이터 값을 지정할 수 있도록 테이블에 CHECK 제약 조건을 만들 수 있습니다.You can create a check constraint in a table to specify the data values that are acceptable in one or more columns in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

보안 Security

사용 권한 Permissions

테이블에 대한 ALTER 사용 권한이 필요합니다.Requires ALTER permissions on the table.

SQL Server Management Studio 사용 Using SQL Server Management Studio

새 CHECK 제약 조건을 만들려면To create a new check constraint

  1. 개체 탐색기에서 CHECK 제약 조건을 추가하려는 테이블을 확장하고, 제약 조건 을 마우스 오른쪽 단추로 클릭한 후 새 제약 조건을 클릭합니다.In Object Explorer, expand the table to which you want to add a check constraint, right-click Constraints and click New Constraint.

  2. CHECK 제약 조건 대화 상자에서 필드를 클릭한 후 줄임표 (…)를 클릭합니다.In the Check Constraints dialog box, click in the Expression field and then click the ellipses (…).

  3. CHECK 제약 조건 식 대화 상자에서 CHECK 제약 조건에 대한 SQL 식을 입력합니다.In the Check Constraint Expression dialog box, type the SQL expressions for the check constraint. 예를 들어 SellEndDate 테이블의 Product 열에 있는 항목을 SellStartDate 열에 있는 날짜보다 크거나 같은 값 또는 NULL 값으로 제한하려면 다음을 입력합니다.For example, to limit the entries in the SellEndDate column of the Product table to a value that is either greater than or equal to the date in the SellStartDate column or is a NULL value, type:

    SellEndDate >= SellStartDate OR SellEndDate IS NULL  
    

    또는, zip 열의 항목을 다섯 자리 숫자로 입력하도록 하려면 다음을 입력합니다.Or, to require entries in the zip column to be 5 digits, type:

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

    숫자가 아닌 제약 조건 값은 모두 작은따옴표(')로 묶어야 합니다.Make sure to enclose any non-numeric constraint values in single quotation marks (').

  4. 확인을 클릭합니다.Click OK.

  5. ID 범주에서는 CHECK 제약 조건의 이름을 변경하고 해당 제약 조건에 대한 설명(확장 속성)을 추가할 수 있습니다.In the Identity category, you can change the name of the check constraint and add a description (extended property) for the constraint.

  6. 테이블 디자이너 범주에서는 제약 조건을 적용하는 경우를 설정할 수 있습니다.In the Table Designer category, you can set when the constraint is enforced.

    수행할 작업:To: 다음 필드에서 예 선택:Select Yes in the Following Fields:
    제약 조건을 만들기 전에 존재한 데이터에 대한 제약 조건 테스트Test the constraint on data that existed before you created the constraint 만들거나 활성화할 때 기존 데이터 검사Check Existing Data On Creation Or Enabling
    이 테이블에서 복제 작업이 수행될 때마다 제약 조건 적용Enforce the constraint whenever a replication operation occurs on this table 복제에 적용Enforce For Replication
    이 테이블의 행을 삽입하거나 업데이트할 때마다 제약 조건 적용Enforce the constraint whenever a row of this table is inserted or updated INSERT 및 UPDATE에 적용Enforce For INSERTs And UPDATEs
  7. 닫기를 클릭합니다.Click Close.

Transact-SQL 사용 Using Transact-SQL

새 CHECK 제약 조건을 만들려면To create a new check constraint

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    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)을 참조하세요.For more information, see ALTER TABLE (Transact-SQL).