IDENTITY (Funktion) (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsLager in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Verwenden IDENTITY Sie nur in einer SELECT Aussage mit einer INTO table Klausel, um eine Identitätsspalte zu einer neuen Tabelle hinzuzufügen. Obwohl ähnlich, ist die IDENTITY Funktion nicht dieselbe wie die IDENTITY Eigenschaft, die du mit CREATE TABLE und ALTER TABLEverwendest.

Hinweis

Um eine automatisch inkrementierende Zahl zu erstellen, die Sie in mehreren Tabellen verwenden oder von Anwendungen aufrufen können, ohne auf eine Tabelle zu verweisen, siehe Sequenznummern.

Transact-SQL-Syntaxkonventionen

Syntax

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

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

Syntax für das Fabric Data Warehouse:

IDENTITY ( data_type ) AS column_name  

Argumente

data_type

Der Datentyp der Identitätsspalte. Gültige Datentypen für eine Identitätsspalte sind alle Datentypen in der Kategorie ganzzahliger Datentypen, mit Ausnahme des Bitdatentyps oder des dezimalen Datentyps.

Samen

Der ganzzahlige Wert, der der ersten Zeile in der Tabelle zugeordnet werden soll. Jede nachfolgende Zeile erhält den nächsten Identitätswert, der der letzte IDENTITY Wert plus der Inkrementwert ist. Wenn du keinen Seed oder Inkrementbereich angibst, wählen beide standardmäßig 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, müssen Sie einen Namen für die Spalte in der Auswahlliste auf eine der folgenden Arten angeben:

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

Unterstützung in Microsoft Fabric Data Warehouse

In Fabric Data Warehouse kann man keine Werte angeben seedincrement, weil das System diese Werte automatisch verwaltet, um eindeutige ganze Zahlen bereitzustellen. Für eine Spaltendefinition in einer CREATE TABLE Aussage musst du nur verwenden BIGINT IDENTITY. Weitere Informationen finden Sie unterCREATE TABLE (Transact-SQL) IDENTITY (Property) und IDENTITY in Fabric Data Warehouse.

Beispiele

Das folgende Beispiel fügt alle Zeilen aus der Contact Tabelle der AdventureWorks2025-Datenbank in eine neue Tabelle namens NewContactein. Die IDENTITY Funktion setzt die Identifikationsnummern so ein, dass sie bei 100 statt bei 1 in der NewContact Tabelle 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