IDENTITY (Función) (Transact-SQL)
Se aplica a: SQL Server Azure SQL Managed Instance
Solo se usa en una instrucción SELECT con una cláusula INTO table para insertar una columna de identidad en una nueva tabla. Aunque es similar, la función IDENTITY no es la propiedad IDENTITY que se utiliza con CREATE TABLE y 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.
Convenciones de sintaxis de Transact-SQL
Sintaxis
IDENTITY (data_type [ , seed , increment ] ) AS column_name
Argumentos
data_type
Se trata del tipo de datos de la columna de identidad. 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.
seed
Se trata del valor entero que se asignará a la primera fila de la tabla. 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. Si no se especifica seed ni increment, el valor predeterminado de ambos es 1.
increment
Se trata del incremento que se debe agregar al valor de seed en las sucesivas filas de la tabla.
column_name
Se trata del nombre de la columna que se va a insertar en la nueva tabla.
Tipos de valor devuelto
Devuelve lo mismo que data_type.
Comentarios
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:
--(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;
Ejemplos
En este ejemplo se insertan todas las filas de la tabla Contact
de la base de datos AdventureWorks2022 en una nueva tabla denominada 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
.
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
Consulte también
CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (Propiedad) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)