IDENTITY (Functie) (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Gebruik IDENTITY alleen in een SELECT statement met een INTO table clausule om een identiteitskolom toe te voegen aan een nieuwe tabel. Hoewel vergelijkbaar, is de IDENTITY functie niet dezelfde als de IDENTITY eigenschap die je gebruikt met CREATE TABLE en ALTER TABLE.

Opmerking

Om een automatisch verhogend nummer te maken dat je in meerdere tabellen kunt gebruiken of vanuit applicaties kunt aanroepen zonder naar een tabel te verwijzen, zie Sequentienummers.

Transact-SQL syntaxis-conventies

Syntaxis

Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance, SQL database in Fabric:

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

Syntaxis voor Fabric Data Warehouse:

IDENTITY ( data_type ) AS column_name  

Argumenten

data_type

Het datatype van de identiteitskolom. Geldige datatypes voor een identiteitskolom zijn alle datatypes in de categorie gehele datatype, behalve het bitdatatype of het decimale datatype.

zaad

De geheel waarde die aan de eerste rij in de tabel wordt toegekend. Elke volgende rij krijgt de volgende identiteitswaarde, die de laatste IDENTITY waarde plus de incrementwaarde is. Als je geen seed of increment specificeert, staan beide standaard op 1.

incrementele

De geheel getal die wordt toegevoegd aan de seedwaarde voor opeenvolgende rijen in de tabel.

column_name

De naam van de kolom die in de nieuwe tabel moet worden ingevoegd.

Retourtypen

Retourneert hetzelfde als data_type.

Opmerkingen

Omdat deze functie een kolom in een tabel aanmaakt, moet je een naam voor de kolom in de selectielijst op een van de volgende manieren opgeven:

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

Ondersteuning in Microsoft Fabric Data Warehouse

In Fabric Data Warehouse kun je geen waarden specificeren seedincrement omdat het systeem deze waarden automatisch beheert om unieke gehele getallen te leveren. Voor een kolomdefinitie in een CREATE TABLE statement hoef je alleen . te gebruiken BIGINT IDENTITY Voor meer informatie, zie CREATE TABLE (Transact-SQL) IDENTITY (Eigendom) en IDENTITY in Fabric Data Warehouse.

Voorbeelden

Het volgende voorbeeld voegt alle rijen uit de Contact tabel in de AdventureWorks2025-database in in een nieuwe tabel genaamd NewContact. De IDENTITY functie stelt de identificatienummers in om te beginnen bij 100 in plaats van 1 in de NewContact tabel.

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