다음을 통해 공유


IDENTITY(함수)(Transact-SQL)

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

IDENTITYINTO SELECT 절이 포함된 문에서 새 테이블에 식별 열을 삽입할 때만 사용됩니다. 비록 비슷하지만, 이 IDENTITY 함수는 와 IDENTITYCREATE TABLE 사용되는 성질이 아닙니다ALTER TABLE.

참고

여러 테이블에서 사용할 수 있거나 테이블을 참조하지 않고 애플리케이션에서 호출할 수 있는 자동으로 증가하는 번호를 만들려면 시퀀스 번호를 참조하세요.

Transact-SQL 구문 표기 규칙

구문

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

인수

data_type

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

테이블의 첫 번째 행에 정수 값을 할당합니다. 후속 행에는 각각 마지막 IDENTITY 값에 증가값을 더한 것과 같은 다음 ID 값이 할당됩니다. 초기값증가값을 모두 지정하지 않으면 기본값은 모두 1이 됩니다.

증가

테이블의 연속된 행에 대해 시드 값에 더하는 정수 값입니다.

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;  

Fabric Data Warehouse에서는 또는 seed를 지정할 increment 수 없는데, 이 값들은 자동으로 관리되어 고유한 정수를 제공하기 때문입니다. BIGINT IDENTITY 는 문장에서 CREATE TABLE 열 정의에 필요한 전부입니다. 자세한 내용은 패브릭 데이터 웨어하우스의CREATE TABLE (Transact-SQL) IDENTITY (Property) 및 IDENTITY를 참조하세요.

예제

다음 예시는 AdventureWorks2025 데이터베이스의 모든 행을 Contact 새로운 테이블에 NewContact삽입합니다. 이 함수는 IDENTITY 표에서 NewContact 식별 번호를 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