Поделиться через


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

Относится к:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceWarehouse в Microsoft FabricSQL база данных в Microsoft Fabric

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

Примечание.

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

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

Синтаксис

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

Аргументы

data_type

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

семя

Целое значение, которое нужно присваивать первой строке таблицы. Каждой последующей строке присваивается следующее значение идентификатора, равное последнему значению IDENTITY, увеличенному на значение increment. Если не указан ни аргумент seed, ни аргумент increment, то значения по умолчанию обоих равны 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 в хранилище данных Fabric.

Примеры

Следующий пример вставляет все строки из 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