Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
Úsalo IDENTITY solo en una SELECT sentencia con una INTO table cláusula para añadir una columna de identidad a una nueva tabla. Aunque similar, la IDENTITY función no es la misma que la IDENTITY propiedad que usas con CREATE TABLE y ALTER TABLE.
Nota
Para crear un número que se incremente automáticamente y que puedas usar en varias tablas o llamar desde aplicaciones sin referenciar ninguna tabla, consulta Números de Secuencia.
Convenciones de sintaxis de Transact-SQL
Sintaxis
Sintaxis para SQL Server, Azure SQL Database, Azure SQL Managed Instance, base de datos SQL en Fabric:
IDENTITY ( data_type [ , seed , increment ] ) AS column_name
Sintaxis para Fabric Data Warehouse:
IDENTITY ( data_type ) AS column_name
Argumentos
data_type
El tipo de dato de la columna de identidad. Los tipos de datos válidos para una columna identidad son cualquier tipo de datos dentro de la categoría de tipo de datos entero , excepto el tipo de dato bit o el tipo de dato decimal .
semilla
El valor entero a asignar a la primera fila de la tabla. Cada fila siguiente recibe el siguiente valor de identidad, que es el último IDENTITY valor más el valor de incremento . Si no especificas semilla o incremento, ambos se asignan por defecto a 1.
incremento
El valor entero a añadir al valor semilla para filas sucesivas en la tabla.
column_name
El nombre de la columna para insertar en la nueva tabla.
Tipos de retorno
Devuelve lo mismo que data_type.
Comentarios
Como esta función crea una columna en una tabla, debes especificar un nombre para la columna en la lista select de una de las siguientes maneras:
--(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;
Apoyo en Microsoft Fabric Data Warehouse
En Fabric Data Warehouse, no puedes especificar seed valores de or increment porque el sistema gestiona automáticamente estos valores para proporcionar enteros únicos. Para una definición de columna en una CREATE TABLE sentencia, solo necesitas usar BIGINT IDENTITY. Para más información, véaseCREATE TABLE (Transact-SQL) IDENTITY (Propiedad) y 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 establece los números de identificación para que comiencen 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