Delen via


IDENTITY (functie) (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Wordt alleen gebruikt in een SELECT-instructie met een INTO-tabelcomponent om een identiteitskolom in een nieuwe tabel in te voegen. Hoewel vergelijkbaar, is de functie IDENTITY niet de eigenschap IDENTITY die wordt gebruikt met CREATE TABLE en ALTER TABLE.

Opmerking

Zie Reeksnummersals u een automatisch oplopend getal wilt maken dat kan worden gebruikt in meerdere tabellen of die vanuit toepassingen kunnen worden aangeroepen zonder naar een tabel te verwijzen.

Transact-SQL syntaxis-conventies

Syntaxis

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

Argumenten

data_type
Is het gegevenstype van de identiteitskolom. Geldige gegevenstypen voor een identiteitskolom zijn alle gegevenstypen van de categorie geheel getalgegevenstypen, met uitzondering van het bitgegevenstype of het decimale gegevenstype.

zaad
Is de geheel getalwaarde die moet worden toegewezen aan de eerste rij in de tabel. Aan elke volgende rij wordt de volgende identiteitswaarde toegewezen, die gelijk is aan de laatste IDENTITEITSwaarde plus de incrementele waarde. Als geen seed of increment is opgegeven, worden beide standaard ingesteld op 1.

incrementele
Is de gehele waarde die moet worden toegevoegd aan de seed-waarde voor opeenvolgende rijen in de tabel.

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

Retourtypen

Retourneert hetzelfde als data_type.

Opmerkingen

Omdat met deze functie een kolom in een tabel wordt gemaakt, moet op een van de volgende manieren een naam voor de kolom worden opgegeven in de selectielijst:

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

Voorbeelden

In het volgende voorbeeld worden alle rijen uit de tabel uit de Contact Database AdventureWorks2022 ingevoegd in een nieuwe tabel met de naam NewContact. De functie IDENTITY wordt gebruikt om identificatienummers te starten 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  

Zie ook

MAAK TABEL AAN (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (eigenschap) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)