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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Используется только в инструкции SELECT с предложением INTO table для вставки столбца идентификаторов в новую таблицу.Is used only in a SELECT statement with an INTO table clause to insert an identity column into a new table. Хотя они похожи, функция IDENTITY не является свойством IDENTITY, которое используется с инструкциями CREATE TABLE и ALTER TABLE.Although similar, the IDENTITY function is not the IDENTITY property that is used with CREATE TABLE and ALTER TABLE.

Примечание

Сведения о том, как создать автоматически увеличивающееся числовое значение, которое может использоваться в нескольких таблицах или вызываться из приложений без ссылки на какие-либо таблицы, см. в разделе Порядковые номера.To create an automatically incrementing number that can be used in multiple tables or that can be called from applications without referencing any table, see Sequence Numbers.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

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

АргументыArguments

data_typedata_type
Тип данных столбца идентификаторов.Is the data type of the identity column. Для столбца идентификаторов допустимы любые целочисленные типы данных, за исключением типов bit и decimal.Valid data types for an identity column are any data types of the integer data type category, except for the bit data type, or decimal data type.

seedseed
Целочисленное значение, присваиваемое первой строке таблицы.Is the integer value to be assigned to the first row in the table. Каждой последующей строке присваивается следующее значение идентификатора, равное последнему значению IDENTITY, увеличенному на значение increment.Each subsequent row is assigned the next identity value, which is equal to the last IDENTITY value plus the increment value. Если не указан ни аргумент seed, ни аргумент increment, то значения по умолчанию обоих равны 1.If neither seed nor increment is specified, both default to 1.

incrementincrement
Целочисленное значение, добавляемое к значению seed для каждой последующей строки таблицы.Is the integer value to add to the seed value for successive rows in the table.

column_namecolumn_name
Имя столбца, который вставляется в новую таблицу.Is the name of the column that is to be inserted into the new table.

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

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

RemarksRemarks

Так как данная функция создает столбец в таблице, имя столбца должно быть указано в списке выбора одним из следующих способов:Because this function creates a column in a table, a name for the column must be specified in the select list in one of the following ways:

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

ПримерыExamples

В следующем примере все строки из таблицы Contact базы данных AdventureWorks2012AdventureWorks2012 вставляются в новую таблицу с именем NewContact.The following example inserts all rows from the Contact table from the AdventureWorks2012AdventureWorks2012database into a new table called NewContact. Функция IDENTITY используется, чтобы начать в таблице NewContact отсчет идентификационных номеров с 100 вместо 1.The IDENTITY function is used to start identification numbers at 100 instead of 1 in the NewContact table.

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  
  

См. также:See Also

CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL) @@IDENTITY (Transact-SQL)
Свойство IDENTITY (Transact-SQL) IDENTITY (Property) (Transact-SQL)
SELECT @local_variable (Transact-SQL) SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL) DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)sys.identity_columns (Transact-SQL)