IDENTITY (Fonction) (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Utilisez IDENTITY uniquement dans une SELECT instruction avec une INTO table clause pour ajouter une colonne d’identité à une nouvelle table. Bien que similaire, la IDENTITY fonction n’est pas la même que la IDENTITY propriété que vous utilisez avec CREATE TABLE et ALTER TABLE.

Notes

Pour créer un nombre à incrément automatique que vous pouvez utiliser dans plusieurs tables ou appeler depuis des applications sans référencer aucune table, voir Numéros de séquence.

Conventions de la syntaxe Transact-SQL

Syntaxe

Syntaxe pour SQL Server, Azure SQL Database, Azure SQL Managed Instance, base de données SQL dans Fabric :

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

Syntaxe pour Fabric Data Warehouse :

IDENTITY ( data_type ) AS column_name  

Les arguments

data_type

Le type de données de la colonne d’identité. Les types de données valides pour une colonne d’identité sont tous les types de données de la catégorie de type de données entière , à l’exception du type de données bit ou du type de données décimal .

Graines

La valeur entière à attribuer à la première ligne du tableau. Chaque ligne suivante reçoit la valeur d’identité suivante, qui est la dernière IDENTITY valeur plus la valeur d’incrément . Si vous ne spécifiez pas de seed ou d’incrémentation, les deux sont par défaut à 1.

augmentation

La valeur entière à ajouter à la valeur de départ pour les lignes successives du tableau.

column_name

Le nom de la colonne à insérer dans la nouvelle table.

Types de retour

Retourne le même type que data_type.

Remarques

Parce que cette fonction crée une colonne dans un tableau, vous devez spécifier un nom pour la colonne dans la liste de sélection de l’une des manières suivantes :

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

Soutien en Microsoft Fabric Data Warehouse

Dans Fabric Data Warehouse, vous ne pouvez pas spécifier seed des valeurs de or increment car le système gère automatiquement ces valeurs pour fournir des entiers uniques. Pour une définition de colonne dans une CREATE TABLE instruction, il suffit d’utiliser BIGINT IDENTITY. Pour plus d’informations, voir CREATE TABLE (Transact-SQL) IDENTITY (Propriété) et IDENTITY dans Fabric Data Warehouse.

Exemples

L’exemple suivant insère toutes les lignes de la Contact table de la base de données AdventureWorks2025 dans une nouvelle table nommée NewContact. La IDENTITY fonction règle les numéros d’identification pour commencer à 100 au lieu de 1 dans le NewContact tableau.

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