IDENTITY(함수)(Transact-SQL)

ID 열을 새 테이블에 삽입하기 위해 INTO table 절과 함께 SELECT 문에서만 사용됩니다. IDENTITY 함수는 CREATE TABLE 및 ALTER TABLE과 함께 사용되는 IDENTITY 속성과 비슷하지만 동일하지는 않습니다.

[!참고]

여러 테이블에서 사용할 수 있거나 테이블을 참조하지 않고 응용 프로그램에서 호출할 수 있는 자동 증가 번호를 만들려면 시퀀스 번호을 참조하십시오.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

IDENTITY (data_type [ , seed , increment ] ) AS column_name

인수

  • data_type
    ID 열의 데이터 형식입니다. ID 열의 유효한 데이터 형식은 bit 데이터 형식을 제외한 정수 데이터 형식 범주의 모든 데이터 형식 또는 decimal 데이터 형식입니다.

  • seed
    테이블의 첫 번째 행에 할당되는 정수 값입니다. 후속 행에는 각각 마지막 IDENTITY 값에 increment를 더한 것과 같은 다음 ID 값이 할당됩니다. seed 및 increment를 모두 지정하지 않으면 기본값은 모두 1이 됩니다.

  • increment
    테이블의 연속된 행에 대해 seed 값에 추가되는 정수 값입니다.

  • column_name
    새 테이블에 삽입될 열의 이름입니다.

반환 형식

data_type과 동일한 유형을 반환합니다*.*

주의

이 함수는 테이블에 열을 만들기 때문에 다음 방법 중 하나를 사용하여 선택 목록에서 열 이름을 지정해야 합니다.

--(1)
SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable;

--(2)
SELECT ID_Num = IDENTITY(int, 1, 1)
INTO NewTable
FROM OldTable;
--(1)
SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable;

--(2)
SELECT ID_Num = IDENTITY(int, 1, 1)
INTO NewTable
FROM OldTable;

다음 예는 AdventureWorks 데이터베이스의 Contact 테이블에 있는 모든 행을 NewContact라는 새 테이블에 삽입합니다. IDENTITY 함수는 NewContact 테이블에서 ID를 1 대신 100부터 시작하는 데 사용됩니다.

USE AdventureWorks2012;
GO
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL
    DROP TABLE Person.NewContact;
GO
ALTER DATABASE AdventureWorks2012 SET RECOVERY BULK_LOGGED;
GO
SELECT  IDENTITY(smallint, 100, 1) AS ContactNum,
        FirstName AS First,
        LastName AS Last
INTO Person.NewContact
FROM Person.Person;
GO
ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;
GO
SELECT ContactNum, First, Last FROM Person.NewContact;
GO
USE AdventureWorks2012;
GO
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL
    DROP TABLE Person.NewContact;
GO
ALTER DATABASE AdventureWorks2012 SET RECOVERY BULK_LOGGED;
GO
SELECT  IDENTITY(smallint, 100, 1) AS ContactNum,
        FirstName AS First,
        LastName AS Last
INTO Person.NewContact
FROM Person.Person;
GO
ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;
GO
SELECT ContactNum, First, Last FROM Person.NewContact;
GO

참고 항목

참조

CREATE TABLE(Transact-SQL)

@@IDENTITY(Transact-SQL)

IDENTITY(속성)(Transact-SQL)

SELECT @local\_variable(Transact-SQL)

DBCC CHECKIDENT(Transact-SQL)

sys.identity_columns(Transact-SQL)