Share via


식별자 열 만들기 및 수정

업데이트: 2006년 4월 14일

각 테이블에 대해 식별자 열과 GUID 열을 하나씩만 만들 수 있습니다.

IDENTITY 속성

식별자 열은 IDENTITY 속성을 사용하여 구현할 수 있습니다. 개발자는 Identity Seed 속성을 사용하여 테이블에 삽입되는 첫 번째 행의 ID를 지정하고 Identity Increment 속성을 사용하여 초기값에 추가되어 연속적인 ID 번호를 결정할 증가값을 모두 지정할 수 있습니다. 식별자 열이 있는 테이블에 값을 삽입할 때 SQL Server 2005 데이터베이스 엔진은 이 초기값에 증가값을 추가하여 다음 번 ID 값을 자동으로 생성합니다. 기존 테이블에 ID 열을 추가하면 ID 번호가 테이블의 기존 행에 추가되며 원래 행을 추가한 순서대로 초기값과 증가값이 적용됩니다. 새로 추가한 모든 행에 대한 ID 열도 생성됩니다. 기존 테이블 열을 수정하여 IDENTITY 속성을 추가할 수는 없습니다.

IDENTITY 속성을 사용하여 식별자 열을 정의하려면 다음 사항을 고려해야 합니다.

  • 테이블은 IDENTITY 속성을 사용하여 정의된 열을 하나만 가질 수 있으며 이 열을 decimal, int, numeric, smallint, bigint 또는 tinyint 데이터 형식으로 정의해야 합니다.

  • 초기값과 증가값을 사용자가 지정할 수 있습니다. 기본값은 모두 1입니다.

  • 식별자 열에 Null 값을 허용하면 안 되고 DEFAULT 정의나 개체를 포함할 수 없습니다.

  • IDENTITY 속성을 설정한 후 $IDENTITY 키워드를 사용하여 선택 목록에서 열을 참조할 수 있습니다. 이름으로 열을 참조할 수도 있습니다.

  • OBJECTPROPERTY 함수를 사용하면 테이블에 IDENTITY 열이 있는지 여부를 알 수 있고 COLUMNPROPERTY 함수를 사용하면 IDENTITY 열의 이름을 알 수 있습니다.

  • SET IDENTITY_INSERT를 사용하여 값을 명시적으로 삽입할 수 있도록 하여 열의 IDENTITY 속성을 해제할 수 있습니다.

    [!참고] 자주 삭제되는 테이블에 식별자 열이 있으면 ID 값 사이에 간격이 생길 수 있습니다. 삭제된 ID 값은 다시 사용되지 않습니다. 이러한 간격이 생기지 않도록 하려면 IDENTITY 속성을 사용하지 마십시오. 대신 행이 삽입될 때 식별자 열의 기존 값에 따라 새 ID 값을 결정하는 트리거를 만들 수 있습니다.

GUID(Globally Unique Identifiers)

IDENTITY 속성이 한 테이블 안에 있는 행에 자동으로 번호를 매기지만 각각 고유한 식별자 열을 가진 별개의 테이블도 같은 값을 생성할 수 있습니다. IDENTITY 속성은 해당 속성이 사용되는 테이블에만 고유하기 때문입니다. 응용 프로그램이 데이터베이스 또는 네트워크로 연결된 전세계의 컴퓨터에 있는 모든 데이터베이스에서 고유한 식별자 열을 생성해야 하는 경우 uniqueidentifier 데이터 형식과 NEWID(Transact-SQL) 또는 NEWSEQUENTIALID() 함수를 사용합니다. 데이터베이스 엔진은 열의 값을 자동으로 생성하지 않습니다. 전역 고유 값을 삽입하려면 해당 열에서 NEWID 또는 NEWSEQUENTIALID 함수를 사용하여 전역 고유 값을 생성하는 DEFAULT 정의를 만듭니다.

ROWGUIDCOL 속성을 설정한 후 $ROWGUID 키워드를 사용하여 선택 목록에서 열을 참조할 수 있습니다. 이것은 $IDENTITY 키워드를 사용하여 IDENTITY 열을 참조하는 방식과 비슷합니다. 테이블은 하나의 ROWGUIDCOL 열만 포함할 수 있고 이 열을 uniqueidentifier 데이터 형식으로 정의해야 합니다.

OBJECTPROPERTY(Transact-SQL) 함수를 사용하면 테이블에 ROWGUIDCOL 열이 있는지 여부를 알 수 있고 COLUMNPROPERTY(Transact-SQL) 함수를 사용하면 ROWGUIDCOL 열의 이름을 알 수 있습니다.

다음 예에서는 기본 키로 uniqueidentifier 열이 있는 테이블을 만듭니다. 이 예에서는 DEFAULT 제약 조건의 NEWSEQUENTIALID() 함수를 사용하여 새 행의 값을 제공합니다. uniqueidentifier 열에 ROWGUIDCOL 속성이 적용되어 $ROWGUID 키워드를 사용하여 참조할 수 있습니다.

CREATE TABLE dbo.Globally_Unique_Data
(guid uniqueidentifier CONSTRAINT Guid_Default DEFAULT NEWSEQUENTIALID() ROWGUIDCOL,
    Employee_Name varchar(60)
CONSTRAINT Guid_PK PRIMARY KEY (guid) );

테이블을 만들 때 새 식별자 열을 만들려면

CREATE TABLE(Transact-SQL)

기존 테이블에서 새 식별자 열을 만들려면

ALTER TABLE(Transact-SQL)

식별자 열을 삭제하려면

ALTER TABLE(Transact-SQL)

방법: 테이블에서 열 삭제(Visual Database Tools)

식별자 열에 대한 정보를 가져오려면

sys.identity_columns(Transact-SQL)

참고 항목

개념

자동 번호 지정과 식별자 열
uniqueidentifier 데이터 사용

관련 자료

COLUMNPROPERTY(Transact-SQL)
NEWID(Transact-SQL)
OBJECTPROPERTY(Transact-SQL)
uniqueidentifier(Transact-SQL)
ID 열 복제

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

변경된 내용
  • ROWGUID 열에 UNIQUE 제약 조건을 사용하는 것에 대한 내용을 제거했습니다.
  • ROWGUIDCOL 속성의 용도에 대한 설명을 추가했습니다.
새로운 내용
  • GUID 열을 만들 때 NEWID 외에 NEWSEQUENTIALID를 사용하는 것에 대한 참조를 추가했습니다.
  • GUID 열을 사용하여 테이블을 만드는 예를 추가했습니다.

2005년 12월 5일

새로운 내용
  • 기존 테이블에 ID 열 추가에 대한 정보를 추가했으며 기존 열에 IDENTITY 속성을 추가할 수 없음을 명확하게 설명했습니다.