IDENTITY (Функция) (Transact-SQL)

Относится к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsХранилище данных в Microsoft FabricБаза данных SQL в Microsoft Fabric

Используйте IDENTITY только в SELECT операторе с INTO table клаузом для добавления столбца идентичности в новую таблицу. Хотя функция похожа, IDENTITY она отличается от IDENTITY свойства, которое вы используете с CREATE TABLE и ALTER TABLE.

Примечание.

Чтобы создать автоматически увеличивающееся число, которое можно использовать в нескольких таблицах или вызывать из приложений без ссылки на таблицы, см. раздел Номера последовательностей.

Соглашения о синтаксисе Transact-SQL

Синтаксис

Синтаксис для SQL Server, Azure SQL SQL Database, Azure SQL SQL Managed Instance, SQL database in Fabric:

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

Синтаксис для хранилища данных fabric:

IDENTITY ( data_type ) AS column_name  

Аргументы

data_type

Тип данных столбца идентичности. Допустимые типы данных для столбца идентичности — это любые типы данных из категории целых типов данных, за исключением битового или десятичного типа данных.

семя

Целое значение для присвоения первой строке таблицы. Каждая следующая строка получает следующее значение тождества, которое является последним IDENTITYплюс приростом . Если вы не указываете seed или increment, оба по умолчанию — 1.

приращение

Целое число, которое нужно добавить к началу для последовательных строк в таблице.

column_name

Название столбца, который нужно вставить в новую таблицу.

Типы возвращаемых данных

Возвращает тот же тип, что и аргумент data_type.

Замечания

Поскольку эта функция создаёт столбец в таблице, необходимо указать имя столбца в списке select одним из следующих способов:

--(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;  

Поддержка в Microsoft Fabric Data Warehouse

В Fabric Data Warehouse нельзя указывать seed значения ORincrement, потому что система автоматически управляет этими значениями, предоставляя уникальные целые числа. Для определения столбца в CREATE TABLE операторе достаточно использовать BIGINT IDENTITY. Для получения дополнительной информации см. CREATE TABLE (Transact-SQL) IDENTITY (Недвижимость) и IDENTITY в Fabric Data Warehouse.

Примеры

Следующий пример вставляет все строки из Contact таблицы базы данных AdventureWorks2025 в новую таблицу с названием NewContact. Функция устанавливает IDENTITY идентификационные номера так, чтобы они начинались с 100 вместо 1 в NewContact таблице.

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