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).