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 TABLEiALTER TABLEsprawozdania.IDENTITY()funkcja jest jednak używana tylko wSELECTinstrukcja zINTOklauzula 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.