Dela via


Identitet (funktion) (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Används endast i en SELECT-instruktion med en INTO-tabellsats för att infoga en identitetskolumn i en ny tabell. Även om den är liknande är identitetsfunktionen inte den identitetsegenskap 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
Är datatypen för identitetskolumnen. Giltiga datatyper för en identitetskolumn är alla datatyper i kategorin heltalsdatatyp, förutom bitdatatypen eller decimaldatatypen .

frö
Är heltalsvärdet som ska tilldelas till 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
Är heltalsvärdet som ska läggas till i startvärdet för efterföljande rader i tabellen.

column_name
Är 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;  

Exempel

I följande exempel infogas alla rader från Contact tabellen från databasen AdventureWorks2022 i en ny tabell med namnet NewContact. Funktionen IDENTITY används för att starta identifieringsnummer vid 100 i stället för 1 i NewContact tabellen.

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  

Se även

SKAPA TABELL (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (egenskap) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)