In SQL Server können Sie die IDENTITY()
verwenden Funktion zum Einfügen einer Identitätsspalte in eine neue Tabelle.
Diese Funktion ist jedoch nicht mit der IDENTITY()
zu verwechseln Eigentum , die mit CREATE TABLE
verwendet wird und ALTER TABLE
Aussagen.
Die IDENTITY()
Funktion wird nur in einem SELECT
verwendet Anweisung mit einem INTO
Tabellenklausel. So können Sie es zum Beispiel beim Übertragen von Daten von einer Tabelle in eine andere verwenden.
Syntax
Die Syntax lautet wie folgt:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
Der data_type Argument gibt den Datentyp der Identitätsspalte an. Gültige Datentypen sind alle Datentypen der ganzzahligen Datentypkategorie, mit Ausnahme von bit und dezimal .
Der Seed ist der Wert, der für die allererste in die Tabelle geladene Zeile verwendet wird.
Das Inkrement ist der inkrementelle Wert, der zum Identitätswert der vorherigen geladenen Zeile hinzugefügt wird.
Der column_name Das Argument stellt den Namen der Identitätsspalte bereit, die Sie erstellen möchten.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein einfaches Codebeispiel.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
Dies wählt Daten aus den Haustieren aus Tabelle und fügt sie in eine neue Tabelle namens BestFriends ein . Die erste Spalte ist eine Identitätsspalte, die ich mit IDENTITY()
erstelle Funktion. In diesem Fall setze ich den Startwert auf 101 und das Inkrement auf 10. Ich nenne diese Spalte pet_id .
Die zweite Spalte nenne ich pet_name , und ich fülle das aus der Spalte mit dem Namen PetName .
Das sind die Haustiere Tabelle sieht so aus:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Ergebnis:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
Und das sind die BestFriends Tabelle sieht nach dem Übertragen der Daten so aus:
SELECT * FROM BestFriends;
Ergebnis:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Die Kosenamen bleiben also gleich, aber die Identitätsspalte enthält andere Werte (weil ich IDENTITY(int, 101, 10)
verwendet habe , verglichen mit IDENTITY(1,1)
für die Haustiere Tabelle).