In SQL Server kunt u de IDENTITY()
. gebruiken functie om een identiteitskolom in een nieuwe tabel in te voegen.
Deze functie moet echter niet worden verward met de IDENTITY()
eigendom , die wordt gebruikt met de CREATE TABLE
en ALTER TABLE
verklaringen.
De IDENTITY()
functie wordt alleen gebruikt in een SELECT
statement met een INTO
tafel clausule. U kunt het dus gebruiken bij het overbrengen van gegevens van de ene tabel naar de andere, bijvoorbeeld.
Syntaxis
De syntaxis gaat als volgt:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
Het data_type argument specificeert het gegevenstype van de identiteitskolom. Geldige gegevenstypen zijn alle gegevenstypen van de categorie van het gegevenstype integer, behalve bit en decimaal .
Het zaad is de waarde die wordt gebruikt voor de allereerste rij die in de tabel wordt geladen.
De verhoging is de incrementele waarde die wordt toegevoegd aan de identiteitswaarde van de vorige rij die werd geladen.
De kolomnaam argument geeft de naam van de identiteitskolom die u wilt maken.
Voorbeeld 1 – Basisgebruik
Hier is een eenvoudig codevoorbeeld.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
Dit selecteert gegevens uit de Huisdieren tabel en voegt deze in een nieuwe tabel met de naam BestFriends . De eerste kolom is een identiteitskolom die ik maak met de IDENTITY()
functie. In dit geval stel ik de seed in op 101 en de toename op 10. Ik noem die kolom pet_id .
Ik noem de tweede kolom pet_name , en ik vul dat in uit de kolom met de naam PetName .
Dit is wat de Huisdieren tabel ziet er als volgt uit:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Resultaat:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
En dit is wat de BestFriends tabel ziet er als volgt uit na het overzetten van de gegevens:
SELECT * FROM BestFriends;
Resultaat:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Dus de huisdierennamen blijven hetzelfde, maar de identiteitskolom bevat verschillende waarden (omdat ik IDENTITY(int, 101, 10)
heb gebruikt , vergeleken met IDENTITY(1,1)
voor de Huisdieren tafel).