Identitet (funktion) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceLager i Microsoft FabricSQL-databas i Microsoft Fabric

IDENTITY används endast i ett SELECT uttalande med en INTO-tabellklausul för att infoga en identitetskolumn i en ny tabell. Även om den är lik, IDENTITY är funktionen inte den IDENTITY egenskap som används med CREATE TABLE och ALTER TABLE.

Anmärkning

Information om hur du skapar ett automatiskt inkrementellt tal som kan användas i flera tabeller eller som kan anropas från program utan att referera till någon tabell finns i Sekvensnummer.

Transact-SQL syntaxkonventioner

Syntax

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

Argumentpunkter

data_type

Datatypen i identitetskolumnen. Giltiga datatyper för en identitetskolumn är alla datatyper i kategorin heltalsdatatyp, förutom bitdatatypen eller decimaldatatypen .

frö

Heltalsvärdet som ska tilldelas den första raden i tabellen. Varje efterföljande rad tilldelas nästa identitetsvärde, vilket är lika med det senaste IDENTITY-värdet plus inkrementsvärdet . Om varken seed eller increment har angetts, är båda standardvärdet 1.

öka

Heltalsvärdet som läggs till seedvärdet för successiva rader i tabellen.

column_name

Namnet på kolumnen som ska infogas i den nya tabellen.

Returtyper

Returnerar samma som data_type.

Anmärkningar

Eftersom den här funktionen skapar en kolumn i en tabell, måste ett namn för kolumnen anges i urvalslistan på något av följande sätt:

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

I Fabric Data Warehouse kan du inte ange seed eller increment, eftersom dessa värden automatiskt hanteras för att tillhandahålla unika heltal. BIGINT IDENTITY är allt som krävs för en kolumndefinition i ett CREATE TABLE uttalande. För mer information, se CREATE TABLE (Transact-SQL), IDENTITY (Property) och IDENTITY i Fabric Data Warehouse.

Exempel

Följande exempel infogar alla rader från Contact tabellen från AdventureWorks2025-databasen i en ny tabell som heter NewContact. Funktionen IDENTITY används för att starta identifieringsnummer på 100 istället för 1 i tabellen NewContact .

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