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