다음을 통해 공유


IDENTITY(함수)(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

ID 열을 새 테이블에 삽입하기 위해 INTO 테이블 절과 함께 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 값에 증가값을 더한 것과 같은 다음 ID 값이 할당됩니다. 초기값증가값을 모두 지정하지 않으면 기본값은 모두 1이 됩니다.

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

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;  

예제

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

USE AdventureWorks2022;  
GO  
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL  
    DROP TABLE Person.NewContact;  
GO  
ALTER DATABASE AdventureWorks2022 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 AdventureWorks2022 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)