W SQL Server możesz użyć IDENTITY() funkcja, aby wstawić kolumnę tożsamości do nowej tabeli.
Jednak tej funkcji nie należy mylić z IDENTITY() nieruchomość , który jest używany z CREATE TABLE i ALTER TABLE sprawozdania.
IDENTITY() funkcja jest używany tylko w SELECT instrukcja z INTO klauzula tabeli. Możesz go więc użyć na przykład podczas przesyłania danych z jednej tabeli do drugiej.
Składnia
Składnia wygląda tak:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
rodzaj_danych argument określa typ danych kolumny tożsamości. Prawidłowe typy danych to dowolne typy danych z kategorii danych całkowitych, z wyjątkiem bitu i dziesiętny .
ziarno jest wartością używaną dla pierwszego wiersza załadowanego do tabeli.
przyrost to wartość przyrostowa dodawana do wartości tożsamości poprzedniego załadowanego wiersza.
nazwa_kolumny argument zawiera nazwę kolumny tożsamości, którą chcesz utworzyć.
Przykład 1 – Podstawowe użycie
Oto podstawowy przykład kodu.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
To wybiera dane z Zwierzaków tabeli i wstawia ją do nowej tabeli o nazwie BestFriends . Pierwsza kolumna to kolumna tożsamości, którą tworzę za pomocą IDENTITY() funkcjonować. W tym przypadku ustawiam ziarno na 101, a przyrost na 10. Nazywam tę kolumnę pet_id .
Nazywam drugą kolumnę pet_name , i wypełniam to z kolumny o nazwie PetName .
Oto, co Zwierzęta tabela wygląda tak:
CREATE TABLE Pets (
PetId int IDENTITY(1,1) PRIMARY KEY,
PetName varchar(255)
);
INSERT INTO Pets (PetName)
VALUES ('Homer'), ('Felix'), ('Ruff');
SELECT * FROM Pet;
Wynik:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
A oto, co Najlepsi Przyjaciele tabela wygląda jak po przesłaniu danych:
SELECT * FROM BestFriends;
Wynik:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Więc imiona zwierząt pozostają takie same, ale kolumna tożsamości zawiera różne wartości (ponieważ użyłem IDENTITY(int, 101, 10) , w porównaniu do IDENTITY(1,1) dla Zwierzaków tabeli).