Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak używać funkcji IDENTITY() w SQL Server

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wersja zaplecza nie jest obsługiwana do projektowania diagramów lub tabel bazy danych

  2. T-SQL:w przeciwieństwie do łączenia ciągów — jak podzielić ciąg na wiele rekordów

  3. Jak wybrać ostatnie 5 wierszy w tabeli bez sortowania?

  4. TSQL:Utwórz widok, który ma dostęp do wielu baz danych

  5. SQL Server — zwracana wartość po INSERT