IDENTITY (Funktion) (Transact-SQL)

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

Använd IDENTITY endast i en SELECT sats med en INTO table klausul för att lägga till en identitetskolumn i en ny tabell. Även om funktionen är lik, är den IDENTITY inte densamma som egenskapen IDENTITY du använder med CREATE TABLE och ALTER TABLE.

Anmärkning

För att skapa ett automatiskt ökande nummer som du kan använda i flera tabeller eller anropa från applikationer utan att referera till någon tabell, se Sekvensnummer.

Transact-SQL syntaxkonventioner

Syntax

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

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

Syntax för Fabric Data Warehouse:

IDENTITY ( data_type ) AS column_name  

Argumentpunkter

data_type

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

frö

Heltalsvärdet som ska tilldelas första raden i tabellen. Varje efterföljande rad får nästa identitetsvärde, vilket är det sista IDENTITY värdet plus inkrementvärdet . Om du inte specificerar seed eller increment, är båda standarden 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 denna funktion skapar en kolumn i en tabell måste du ange ett namn för kolumnen i select-listan på ett 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;  

Stöd i Microsoft Fabric Data Warehouse

I Fabric Data Warehouse kan du inte specificera seed eller increment värden eftersom systemet automatiskt hanterar dessa värden för att ge unika heltal. För en kolumndefinition i ett CREATE TABLE uttalande behöver du bara använda BIGINT IDENTITY. För mer information, se CREATE TABLE (Transact-SQL) IDENTITY (Egendom) och IDENTITY i Fabric Data Warehouse.

Exempel

Följande exempel infogar alla rader från Contact tabellen i AdventureWorks2025-databasen i en ny tabell som heter NewContact. Funktionen IDENTITY sätter identifieringsnumren att börja 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