IDENTITY (Función) (Transact-SQL)IDENTITY (Function) (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Solo se usa en una instrucción SELECT con una cláusula INTO table para insertar una columna de identidad en una nueva tabla.Is used only in a SELECT statement with an INTO table clause to insert an identity column into a new table. Aunque es similar, la función IDENTITY no es la propiedad IDENTITY que se utiliza con CREATE TABLE y ALTER TABLE.Although similar, the IDENTITY function is not the IDENTITY property that is used with CREATE TABLE and ALTER TABLE.

Nota

Para crear un número que se incremente automáticamente y que se pueda usar en varias tablas, o que se pueda llamar desde las aplicaciones sin hacer referencia a ninguna tabla, vea Números de secuencia.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.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

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

ArgumentosArguments

data_typedata_type
Se trata del tipo de datos de la columna de identidad.Is the data type of the identity column. Los tipos de datos válidos para una columna de identidad son cualquier tipo de datos de la categoría de los enteros, excepto el tipo de datos bit o el tipo de datos 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
Se trata del valor entero que se asignará a la primera fila de la tabla.Is the integer value to be assigned to the first row in the table. A cada fila siguiente se le asigna el siguiente valor de identidad, que es igual al último valor IDENTITY más el valor de increment.Each subsequent row is assigned the next identity value, which is equal to the last IDENTITY value plus the increment value. Si no se especifica seed ni increment, el valor predeterminado de ambos es 1.If neither seed nor increment is specified, both default to 1.

incrementincrement
Se trata del incremento que se debe agregar al valor de seed en las sucesivas filas de la tabla.Is the integer value to add to the seed value for successive rows in the table.

column_namecolumn_name
Se trata del nombre de la columna que se va a insertar en la nueva tabla.Is the name of the column that is to be inserted into the new table.

Tipos devueltosReturn Types

Devuelve lo mismo que data_type.Returns the same as data_type.

NotasRemarks

Debido a que esta función crea una columna en una tabla, se debe especificar un nombre para la columna en la lista de selección de una de las formas siguientes: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;  
  

EjemplosExamples

En este ejemplo se insertan todas las filas de la tabla Contact de la base de datos AdventureWorks2012AdventureWorks2012 en una nueva tabla denominada NewContact.The following example inserts all rows from the Contact table from the AdventureWorks2012AdventureWorks2012database into a new table called NewContact. La función IDENTITY se utiliza para iniciar los números de identificación a partir de 100 en lugar de 1 en la tabla NewContact.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  
  

Consulte tambiénSee Also

CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL) @@IDENTITY (Transact-SQL)
IDENTITY (propiedad) (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)