Freigeben über


IDENTITY (Funktion) (Transact-SQL)

Gilt für:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceLager in Microsoft FabricSQL-Datenbank in Microsoft Fabric

IDENTITY wird nur in einer SELECT Anweisung mit einer INTO-Tabellenklausel verwendet, um eine Einheitsspalte in eine neue Tabelle einzufügen. Obwohl ähnlich, ist die IDENTITY Funktion nicht die IDENTITY Eigenschaft, die mit CREATE TABLE und ALTER TABLEverwendet wird.

Hinweis

Weitere Informationen zu einer automatisch inkrementierten Zahl, die in mehreren Tabellen verwendet oder aus Anwendungen aufgerufen werden kann, ohne dass auf eine Tabelle verwiesen wird, finden Sie unter Sequenznummern.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

data_type

Der Datentyp der Identitätsspalte. Gültige Datentypen für eine Identitätsspalte sind beliebige Datentypen aus der Integerdatentypkategorie (mit Ausnahme des bit-Datentyps) oder der decimal-Datentyp.

Samen

Der ganzzahlige Wert, der der ersten Zeile in der Tabelle zugewiesen werden soll. Jeder nachfolgenden Zeile wird jeweils der nächste Identitätswert zugewiesen, der sich aus dem letzten IDENTITY-Wert plus dem increment-Wert ergibt. Ist weder der Ausgangswert (seed) noch der inkrementelle Wert (increment) angegeben, gilt für beide der Standardwert 1.

Zunahme

Der ganzzahlige Wert, der zum Startwert für aufeinanderfolgende Zeilen in der Tabelle hinzugefügt werden soll.

column_name

Der Name der Spalte, die in die neue Tabelle eingefügt werden soll.

Rückgabetypen

Gibt denselben Wert zurück wie data_type.

Hinweise

Da diese Funktion eine Spalte in einer Tabelle erstellt, muss für die Spalte ein Name in der Auswahlliste angegeben werden. Dies kann auf zwei Arten geschehen:

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

Im Fabric Data Warehouse kann man nicht angeben seed oder increment, da diese Werte automatisch verwaltet werden, um eindeutige ganze Zahlen bereitzustellen. BIGINT IDENTITY ist alles, was für eine Spaltendefinition in einer CREATE TABLE Aussage erforderlich ist. Weitere Informationen finden Sie unter CREATE TABLE (Transact-SQL), IDENTITY (Property) und IDENTITY in Fabric Data Warehouse.

Beispiele

Das folgende Beispiel fügt alle Zeilen aus der Contact Tabelle aus der AdventureWorks2025-Datenbank in eine neue Tabelle namens NewContact. Die IDENTITY Funktion wird verwendet, um Identifikationsnummern bei 100 statt 1 in der NewContact Tabelle zu beginnen.

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