I SQL Server kan du använda IDENTITY()
funktion för att infoga en identitetskolumn i en ny tabell.
Den här funktionen ska dock inte förväxlas med IDENTITY()
egendom , som används med CREATE TABLE
och ALTER TABLE
uttalanden.
IDENTITY()
funktion används endast i en SELECT
uttalande med en INTO
tabellklausul. Så du kan använda den när du till exempel överför data från en tabell till en annan.
Syntax
Syntaxen ser ut så här:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
data_type argument anger datatypen för identitetskolumnen. Giltiga datatyper är alla datatyper av heltalsdatatypkategorin, förutom bit och decimal .
fröet är värdet som används för den allra första raden som laddas in i tabellen.
ökningen är det inkrementella värdet som läggs till identitetsvärdet för den föregående raden som laddades.
kolumnnamn argument ger namnet på identitetskolumnen som du vill skapa.
Exempel 1 – Grundläggande användning
Här är ett grundläggande kodexempel.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
Detta väljer data från Husdjur tabell och infogar den i en ny tabell som heter Bästa vänner . Den första kolumnen är en identitetskolumn som jag skapar med IDENTITY()
fungera. I det här fallet ställer jag in kärnan till 101 och ökningen till 10. Jag kallar den kolumnen pet_id .
Jag kallar den andra kolumnen pet_name , och jag fyller i det från kolumnen som heter PetName .
Här är vad husdjuren har tabellen ser ut så här:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Resultat:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
Och här är vad bästa vännerna tabellen ser ut som efter överföring av data:
SELECT * FROM BestFriends;
Resultat:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Så husdjursnamnen förblir desamma, men identitetskolumnen innehåller olika värden (eftersom jag använde IDENTITY(int, 101, 10)
, jämfört med IDENTITY(1,1)
för husdjur tabell).