Może wydawać się to dziwne, ale T-SQL ma funkcję IDENTITY()
właściwość i IDENTITY()
funkcja, z których każda służy (podobnemu, ale) innemu celowi.
IDENTITY()
Właściwość tworzy kolumnę tożsamości w tabeli. Kolumna tożsamości zawiera automatycznie rosnący numer identyfikacyjny. Ta właściwość jest używana zCREATE TABLE
iALTER TABLE
sprawozdania.IDENTITY()
funkcja jest jednak używana tylko wSELECT
instrukcja zINTO
klauzula table, aby wstawić kolumnę tożsamości do nowej tabeli.
Istnieje również SQL-DMO Identity
Właściwość, która ujawnia właściwość tożsamości wiersza kolumny, ale nie będę tego tutaj omawiać. Firma Microsoft informuje, że ta właściwość zostanie usunięta w przyszłej wersji SQL Server i należy unikać jej używania w nowych pracach programistycznych.
Właściwość IDENTITY()
Oto przykład użycia IDENTITY()
właściwość.
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) );
Ten kod tworzy tabelę z dwiema kolumnami. Pierwsza kolumna (PetId
) jest kolumną tożsamości (ponieważ używam IDENTITY()
w swojej definicji).
Teraz, po utworzeniu kolumny tożsamości, mogę wstawić imiona zwierząt do PetName
kolumna bez konieczności dołączania identyfikatora dla każdego wiersza.
INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Wynik:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
W tym przypadku numeracja zaczyna się od 1, a każdy wiersz zwiększa się o 1. Dzieje się tak, ponieważ użyłem IDENTITY(1,1)
aby określić, że wartość seed wynosi 1 i że jest zwiększana o 1 w każdym nowym wierszu.
Funkcja IDENTITY()
Jak wspomniano, IDENTITY()
funkcja jest używana w SELECT INTO
oświadczenie. Oto przykład użycia IDENTITY()
funkcja.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets; SELECT * FROM BestFriends;
Wynik:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Tutaj stworzyłem tabelę o nazwie BestFriends
i wypełnił go z Pets
stół.
W tym przypadku zacząłem zliczanie od 101 i zwiększyłem je o 10. Zauważ też, że funkcja wymaga pierwszego argumentu do określenia typu danych kolumny.