외래 키 관계 수정Modify Foreign Key Relationships

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

SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 관계의 외래 키 측을 수정할 수 있습니다.You can modify the foreign key side of a relationship in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 테이블의 외래 키를 수정하면 주 키 테이블의 열과 관련된 열이 변경됩니다.Modifying a table’s foreign key changes which columns are related to columns in the primary key table.

항목 내용In This Topic

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

제한 사항 Limitations and Restrictions

다음 경우를 제외하고 새 외래 키 열의 데이터 형식 및 크기는 관련된 기본 키 열의 데이터 형식 및 크기와 일치해야 합니다.The new foreign key column must match the data type and size of the primary key column to which it relates, with these exceptions:

  • char 열 또는 sysname 열은 varchar 열에 연결될 수 있습니다.A char column or sysname column can relate to a varchar column.

  • binary 열은 varbinary 열에 연결될 수 있습니다.A binary column can relate to a varbinary column.

  • 별칭 데이터 형식은 해당 기본 형식에 연결될 수 있습니다.An alias data type can relate to its base type.

보안 Security

사용 권한 Permissions

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

SQL Server Management Studio 사용 Using SQL Server Management Studio

외래 키를 수정하려면To modify a foreign key

  1. 개체 탐색기에서 외래 키를 포함하는 테이블을 확장하고 를 확장합니다.In Object Explorer, expand the table with the foreign key and then expand Keys.

  2. 수정할 외래 키를 마우스 오른쪽 단추로 클릭하고 수정을 클릭합니다.Right-click the foreign key to be modified and select Modify.

  3. 외래 키 관계 대화 상자에서 다음과 같은 사항을 수정할 수 있습니다.In the Foreign Key Relationships dialog box, you can make the following modifications.

    선택한 관계Selected Relationship
    기존 관계를 나열합니다.Lists existing relationships. 관계를 선택하면 오른쪽 표에 해당 속성이 표시됩니다.Select a relationship to show its properties in the grid to the right. 목록이 비어 있는 경우 테이블에 정의된 관계가 없음을 의미합니다.If the list is empty, no relationships have been defined for the table.

    추가Add
    새 관계를 만듭니다.Create a new relationship. 관계를 유효하게 만들려면 테이블 및 열 사양 을 먼저 설정해야 합니다.The Tables and Columns Specifications must be set before the relationship will be valid.

    DeleteDelete
    선택한 관계 목록에서 선택한 관계를 삭제합니다.Delete the relationship selected in the Selected Relationships list. 관계 추가를 취소하려면 이 단추를 사용하여 관계를 제거합니다.To cancel the addition of a relationship, use this button to remove the relationship.

    일반 범주General Category
    확장하여 만들거나 다시 활성화할 때 기존 데이터 검사테이블 및 열 사양을 표시합니다.Expand to show Check Existing Data on Creation or RE-Enabling and Tables and Columns Specifications.

    Check Existing Data on Creation or Re-EnablingCheck Existing Data on Creation or Re-Enabling
    제약 조건을 만들거나 다시 활성화하기 전부터 테이블에 있던 모든 데이터를 제약 조건에 대해 검사합니다.Verify all existing data in the table before the constraint was created or re-enabled, against the constraint.

    테이블 및 열 사양 범주Tables and Columns Specifications Category
    확장하여 어떠한 테이블의 어떠한 열이 관계에서 외래 키와 기본 키(또는 고유 키)로 사용되는지에 대한 정보를 표시합니다.Expand to show which columns from which tables act as the foreign key and primary (or unique) key in the relationship. 이러한 값을 편집하거나 정의하려면 속성 필드의 오른쪽에 있는 줄임표 단추(...)를 클릭합니다.To edit or define these values, click the ellipsis button () to the right of the property field.

    외래 키 기본 테이블Foreign Key Base Table
    선택한 관계에서 외래 키로 사용되는 열이 포함된 테이블을 표시합니다.Shows which table contains the column acting as a foreign key in the selected relationship.

    외래 키 열Foreign Key Columns
    선택한 관계에서 외래 키로 사용되는 열을 표시합니다.Shows which column acts as a foreign key in the selected relationship.

    Primary/Unique 키 기본 테이블Primary/Unique Key Base Table
    선택한 관계에서 기본 키(또는 고유 키)로 사용되는 열이 포함된 테이블을 표시합니다.Shows which table contains the column acting as a primary (or unique) key in the selected relationship.

    Primary/Unique 키 열Primary/Unique Key Columns
    선택한 관계에서 기본 키(또는 고유 키)로 사용되는 열을 표시합니다.Shows which column acts as a primary (or unique) key in the selected relationship.

    ID 범주Identity Category
    확장하여 이름설명에 대한 속성 필드를 표시합니다.Expand to show the property fields for Name and Description.

    이름Name
    관계의 이름을 표시합니다.Shows the name of the relationship. 새 관계를 만들면 테이블 디자이너의 활성 창에 있는 테이블을 기반으로 한 기본 이름이 새 관계에 지정됩니다.When a new relationship is created, it is given a default name based on the table in the active window in Table Designer. 언제든지 이름을 변경할 수 있습니다.You can change the name at any time.

    설명Description
    관계에 대해 설명합니다.Describe the relationship. 자세한 설명을 기록하려면 설명 을 클릭한 다음 속성 필드의 오른쪽에 있는 줄임표 (...) 를 클릭합니다.To write a more detailed description, click Description and then click the ellipsis (...) that appears to the right of the property field. 이렇게 하면 텍스트를 쓸 수 있는 더 큰 영역이 제공됩니다.This provides a larger area in which to write text.

    테이블 디자이너 범주Table Designer Category
    확장하여 만들거나 다시 활성화할 때 기존 데이터 검사복제에 적용에 대한 정보를 표시합니다.Expand to show information for Check Existing Data on Creation or Re-Enabling and Enforce for Replication.

    Enforce For ReplicationEnforce For Replication
    복제 에이전트가 이 테이블에서 삽입, 업데이트 또는 삭제를 수행할 때 제약 조건을 적용할지 여부를 나타냅니다.Indicates whether to enforce the constraint when a replication agent performs an insert, update, or delete on this table.

    외래 키 제약 조건 적용Enforce Foreign Key Constraint
    관계를 맺고 있는 열의 데이터를 변경할 때 외래 키 관계의 무결성 제약 조건을 위반하게 되는 경우 이러한 데이터를 변경할 수 있는지 여부를 지정합니다.Specify whether changes are allowed to the data of the columns in the relationship if those changes would invalidate the integrity of the foreign key relationship. 이러한 변경을 허용하지 않으려면 를 선택하고, 이를 허용하려면 아니요 를 선택합니다.Choose Yes if you do not want to allow such changes, and choose No if you do want to allow them.

    INSERT 및 UPDATE 사양 범주INSERT and UPDATE Specification Category
    확장하여 관계의 삭제 규칙업데이트 규칙 에 대한 정보를 표시합니다.Expand to show information for the Delete Rule and the Update Rule for the relationship.

    삭제 규칙Delete Rule
    외래 키 관계를 맺고 있는 데이터가 포함된 행을 사용자가 삭제하려 할 때 적용할 결과를 지정합니다.Specify what happens if a user tries to delete a row with data that is involved in a foreign key relationship:

    • 동작 안 함 삭제가 허용되지 않고 DELETE가 롤백된다는 오류 메시지가 나타납니다.No Action An error message tells the user that the deletion is not allowed and the DELETE is rolled back.

    • 계단식 배열 외래 키 관계에 관련된 데이터가 포함된 모든 행을 삭제합니다.Cascade Deletes all rows containing data involved in the foreign key relationship. 논리적 레코드를 사용하는 병합 게시에 테이블이 포함되는 경우 CASCADE를 지정하지 마세요.Do not specify CASCADE if the table will be included in a merge publication that uses logical records.

    • Null 설정 테이블의 모든 외래 키 열에 Null 값을 사용할 수 있으면 값을 Null로 설정합니다.Set Null Sets the value to null if all foreign key columns for the table can accept null values.

    • 기본값 설정 테이블의 모든 외래 키 열에 기본값이 정의되어 있으면 열에 정의된 기본값으로 값을 설정합니다.Set Default Sets the value to the default value defined for the column if all foreign key columns for the table have defaults defined for them.

      업데이트 규칙Update Rule
      외래 키 관계를 맺고 있는 데이터가 포함된 행을 사용자가 업데이트하려 할 때 적용할 결과를 지정합니다.Specify what occurs if a user tries to update a row with data that is involved in a foreign key relationship:

    • 동작 안 함 업데이트가 허용되지 않고 UPDATE가 롤백된다는 오류 메시지가 나타납니다.No Action An error message tells the user that the update is not allowed and the UPDATE is rolled back.

    • 계단식 배열 외래 키 관계에 관련된 데이터가 포함된 모든 행을 업데이트합니다.Cascade Updates all rows that contain data involved in the foreign key relationship. 논리적 레코드를 사용하는 병합 게시에 테이블이 포함되는 경우 CASCADE를 지정하지 마세요.Do not specify CASCADE if the table will be included in a merge publication that uses logical records.

    • Null 설정 테이블의 모든 외래 키 열에 Null 값을 사용할 수 있으면 값을 Null로 설정합니다.Set Null Sets the value to null if all foreign key columns for the table can accept null values.

    • 기본값 설정 테이블의 모든 외래 키 열에 기본값이 정의되어 있으면 열에 정의된 기본값으로 값을 설정합니다.Set Default Sets the value to the default value that is defined for the column if all foreign key columns for the table have defaults defined for them.

  4. 파일 메뉴에서 저장table name을 클릭합니다.On the File menu, click Savetable name.

Transact-SQL 사용 Using Transact-SQL

외래 키를 수정하려면To modify a foreign key

Transact-SQL을 사용하여 FOREIGN KEY 제약 조건을 수정하려면 먼저 기존 FOREIGN KEY 제약 조건을 삭제하고 새로운 정의를 사용하여 다시 만들어야 합니다.To modify a FOREIGN KEY constraint by using Transact-SQL, you must first delete the existing FOREIGN KEY constraint and then re-create it with the new definition. 자세한 내용은 Delete Foreign Key RelationshipsCreate Foreign Key Relationships를 참조하세요.For more information, see Delete Foreign Key Relationships and Create Foreign Key Relationships.