Compartir a través de


IDENTITY (Función) (Transact-SQL)

Aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

IDENTITY se usa solo en una SELECT sentencia con una cláusula de tabla INTO para insertar una columna identidad en una nueva tabla. Aunque similar, la IDENTITY función no es la IDENTITY propiedad que se usa 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

El tipo de dato 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.

semilla

El 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.

incremento

El valor entero a añadir al valor semilla para filas sucesivas en la tabla.

column_name

El nombre de la columna que se va a insertar en la nueva tabla.

Tipos de retorno

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;  

En Fabric Data Warehouse, no se puede especificar seed ni increment, ya que estos valores se gestionan automáticamente para proporcionar enteros únicos. BIGINT IDENTITY es todo lo que se requiere para una definición de columna en una CREATE TABLE sentencia. Para más información, consulte CREATE TABLE (Transact-SQL), IDENTITY (Property) e IDENTITY en Fabric Data Warehouse.

Ejemplos

El siguiente ejemplo inserta todas las filas de la Contact tabla de la base de datos AdventureWorks2025 en una nueva tabla llamada NewContact. La IDENTITY función se utiliza para comenzar los números de identificación en 100 en lugar de 1 en la NewContact tabla.

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