Det kan verka konstigt, men T-SQL har en IDENTITY() egenskap och en IDENTITY() funktion, som var och en tjänar ett (liknande men) olika syfte.
-
IDENTITY()egenskap skapar en identitetskolumn i en tabell. En identitetskolumn innehåller ett automatiskt ökande identifikationsnummer. Den här egenskapen används medCREATE TABLEochALTER TABLEuttalanden. -
IDENTITY()Funktionen används dock endast i enSELECTuttalande med enINTOtabellsats för att infoga en identitetskolumn i en ny tabell.
Det finns också SQL-DMO Identity egenskap som exponerar radidentitetsegenskapen för en kolumn, men jag kommer inte att täcka det här. Microsoft rekommenderar att den här egenskapen kommer att tas bort i en framtida version av SQL Server och att du bör undvika att använda den i nytt utvecklingsarbete.
IDENTITY() Egenskap
Här är ett exempel på hur du använder IDENTITY() egendom.
CREATE TABLE Pets (
PetId int IDENTITY(1,1) PRIMARY KEY,
PetName varchar(255)
);
Denna kod skapar en tabell med två kolumner. Den första kolumnen (PetId ) är en identitetskolumn (eftersom jag använder IDENTITY() egendom i dess definition).
Nu när jag har skapat en identitetskolumn kan jag infoga husdjursnamn i PetName kolumn utan att behöva inkludera ett ID för varje rad.
INSERT INTO Pets (PetName)
VALUES ('Homer'), ('Felix'), ('Ruff');
SELECT * FROM Pet;
Resultat:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
I det här fallet börjar numreringen på 1 och varje rad ökar med 1. Detta beror på att jag använde IDENTITY(1,1) för att ange att startvärdet är 1 och att det ökas med 1 på varje ny rad.
IDENTITY() Funktion
Som nämnts, IDENTITY() funktionen används i en SELECT INTO påstående. Här är ett exempel på hur du använder IDENTITY() funktion.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets; SELECT * FROM BestFriends;
Resultat:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Här skapade jag en tabell som heter BestFriends och fyllde den från Pets tabell.
I det här fallet startade jag räkningen på 101 och ökade den med 10. Observera också att funktionen kräver det första argumentet för att ange datatypen för kolumnen.