sql >> Databáze >  >> RDS >> Sqlserver

Jak používat funkci IDENTITY() na serveru SQL Server

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


  1. Odečtěte hodiny od funkce now().

  2. Unikněte z hodnoty LIKE SQL pro Postgres pomocí psycopg2

  3. Nové rodiny procesorů AMD se dobře porovnávají s novými procesory Intel

  4. Možnosti formátování SQLcl (Oracle)