Partager via


IDENTITY (Fonction) (Transact-SQL)

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

IDENTITY est utilisé uniquement dans une SELECT instruction avec une clause de table INTO pour insérer une colonne d’identité dans une nouvelle table. Bien que similaire, la IDENTITY fonction n’est pas la IDENTITY propriété utilisée avec CREATE TABLE et ALTER TABLE.

Notes

Pour créer un numéro à incrémentation automatique qui peut être utilisé dans plusieurs tables ou être appelé par des applications sans faire référence à une table, consultez Numéros de séquence.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Les arguments

data_type

Le type de données de la colonne d’identité. Tous les types de données de la catégorie de type entier sont valides pour une colonne d’identité, à l’exception des types de données bit et decimal.

Graines

La valeur entière à attribuer à la première ligne du tableau. La valeur d’identité suivante est affectée à chaque ligne suivante. Cette valeur est égale à la dernière valeur IDENTITY augmentée de la valeur increment. Si vous ne spécifiez ni seed ni increment, les deux arguments reçoivent par défaut la valeur 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 qui doit être insérée dans la nouvelle table.

Types de retour

Retourne le même type que data_type.

Remarques

Étant donné que cette fonction crée une colonne dans une table, vous devez spécifier pour la colonne un nom figurant 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;  

Dans Fabric Data Warehouse, vous ne pouvez pas spécifier seed ni increment, car ces valeurs sont automatiquement gérées pour fournir des entiers uniques. BIGINT IDENTITY est tout ce qui est requis pour une définition de colonne dans une CREATE TABLE instruction. Pour plus d’informations, voir CREATE TABLE (Transact-SQL), IDENTITY (Property) 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 appelée NewContact. La IDENTITY fonction sert à commencer les numéros d’identification à 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