V SQL Server můžete použít IDENTITY()
funkce pro vložení sloupce identity do nové tabulky.
Tuto funkci však nezaměňujte s IDENTITY()
vlastnictví , který se používá s CREATE TABLE
a ALTER TABLE
prohlášení.
IDENTITY()
funkce se používá pouze v SELECT
příkaz s INTO
tabulková doložka. Můžete jej tedy použít například při přenosu dat z jedné tabulky do druhé.
Syntaxe
Syntaxe vypadá takto:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
data_type argument určuje datový typ sloupce identity. Platné datové typy jsou libovolné datové typy z kategorie celočíselných datových typů, kromě bit a desítkové .
semeno je hodnota, která se používá pro úplně první řádek načtený do tabulky.
přírůstek je přírůstková hodnota, která se přičte k hodnotě identity předchozího načteného řádku.
název_sloupce argument poskytuje název sloupce identity, který chcete vytvořit.
Příklad 1 – Základní použití
Zde je základní příklad kódu.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
Tím se vyberou data z Zvířatů tabulku a vloží ji do nové tabulky s názvem BestFriends . První sloupec je sloupec identity, který vytvořím pomocí IDENTITY()
funkce. V tomto případě nastavím seed na 101 a přírůstek na 10. Tento sloupec nazývám id_pet .
Druhý sloupec nazývám pet_name a vyplním to ze sloupce s názvem PetName .
Zde je to, co Zvířata tabulka vypadá takto:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Výsledek:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
A tady jsou Nejlepší přátelé tabulka po přenosu dat vypadá takto:
SELECT * FROM BestFriends;
Výsledek:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Takže jména domácích zvířat zůstávají stejná, ale sloupec identity obsahuje jiné hodnoty (protože jsem použil IDENTITY(int, 101, 10)
ve srovnání s IDENTITY(1,1)
pro domácí mazlíčky tabulka).