기본 키 만들기Create Primary Keys

이 항목은 다음에 적용됩니다. 예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와 관련 된 콘텐츠를 참조 하십시오. Create Primary Keys합니다.For content related to previous versions of SQL Server, see Create Primary Keys.

SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 기본 키를 정의할 수 있습니다.You can define a primary key in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 기본 키를 만들면 해당하는 고유 클러스터형 또는 비클러스터형 인덱스가 자동으로 만들어집니다.Creating a primary key automatically creates a corresponding unique, clustered or nonclustered index.

항목 내용In This Topic

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

제한 사항Limitations and Restrictions

  • 테이블은 하나의 PRIMARY KEY 제약 조건만 포함할 수 있습니다.A table can contain only one PRIMARY KEY constraint.

  • PRIMARY KEY 제약 조건 내에서 정의된 모든 열은 NOT NULL로 정의되어야 합니다.All columns defined within a PRIMARY KEY constraint must be defined as NOT NULL. NULL 허용 여부를 지정하지 않은 경우에는 PRIMARY KEY 제약 조건에 참여하는 모든 열의 NULL 허용 여부가 NOT NULL로 설정됩니다.If nullability is not specified, all columns participating in a PRIMARY KEY constraint have their nullability set to NOT NULL.

보안Security

사용 권한Permissions

기본 키가 포함된 새 테이블을 만들려면 데이터베이스에서 CREATE TABLE 권한이 필요하고 테이블을 만들려는 스키마에 대한 ALTER 권한이 필요합니다.Creating a new table with a primary key requires CREATE TABLE permission in the database and ALTER permission on the schema in which the table is being created.

기존 테이블에서 기본 키를 만들려면 해당 테이블에 대한 ALTER 권한이 필요합니다.Creating a primary key in an existing table requires ALTER permission on the table.

SQL Server Management Studio 사용Using SQL Server Management Studio

기본 키를 만들려면To create a primary key

  1. 개체 탐색기에서 UNIQUE 제약 조건을 추가하려는 테이블을 마우스 오른쪽 단추로 클릭하고 디자인을 선택합니다.In Object Explorer, right-click the table to which you want to add a unique constraint, and click Design.

  2. 테이블 디자이너에서 기본 키로 정의하려는 데이터베이스 열의 행 선택기를 클릭합니다.In Table Designer, click the row selector for the database column you want to define as the primary key. 여러 열을 선택하려면 Ctrl 키를 누른 상태로 다른 열의 행 선택기를 클릭합니다.If you want to select multiple columns, hold down the CTRL key while you click the row selectors for the other columns.

  3. 열의 행 선택기를 마우스 오른쪽 단추로 클릭하고 기본 키 설정을 선택합니다.Right-click the row selector for the column and select Set Primary Key.

주의

기본 키를 다시 정의하려면 기존의 기본 키에 대한 관계를 모두 삭제한 다음 기본 키를 새로 만들어야 합니다.If you want to redefine the primary key, any relationships to the existing primary key must be deleted before the new primary key can be created. 이 과정에서 기존의 관계가 자동으로 삭제된다는 경고 메시지가 나타납니다.A message will warn you that existing relationships will be automatically deleted as part of this process.

기본 키 열을 구분하기 위해 해당 행 선택기에 기본 키 기호가 표시됩니다.A primary key column is identified by a primary key symbol in its row selector.

기본 키가 두 개 이상의 열로 구성되어 있는 경우 한 열에는 중복 값이 허용되지만 기본 키의 모든 열에 있는 값의 각 조합은 중복되지 않아야 합니다.If a primary key consists of more than one column, duplicate values are allowed in one column, but each combination of values from all the columns in the primary key must be unique.

복합 키를 정의하는 경우 기본 키의 열 순서는 테이블에 표시되는 열 순서와 일치합니다.If you define a compound key, the order of columns in the primary key matches the order of columns as shown in the table. 기본 키를 만든 후에 이러한 열 순서를 변경할 수 있습니다.However, you can change the order of columns after the primary key is created. 자세한 내용은 기본 키 수정을 참조하세요.For more information, see Modify Primary Keys.

Transact-SQL 사용Using Transact-SQL

기존 테이블에 고유 키를 만들려면To create a primary key in an existing table

  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. 이 예에서는 TransactionID열에 기본 키를 만듭니다.The example creates a primary key on the column TransactionID.

    USE AdventureWorks2012;  
    GO  
    ALTER TABLE Production.TransactionHistoryArchive   
    ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);  
    GO  
    

새 테이블에 고유 키를 만들려면To create a primary key in a new table

  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. 이 예에서는 테이블을 만들고 TransactionID 열에 고유 키를 정의합니다.The example creates a table and defines a primary key on the column TransactionID.

    USE AdventureWorks2012;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive1  
    (  
       TransactionID int NOT NULL,  
       CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID)  
    );  
    GO  
    

    자세한 내용은 ALTER TABLE(Transact-SQL), CREATE TABLE(Transact-SQL)table_constraint(Transact-SQL)를 참조하세요.For more information, see ALTER TABLE (Transact-SQL), CREATE TABLE (Transact-SQL), and table_constraint (Transact-SQL).