Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да използвате функцията IDENTITY() в SQL Server

В SQL Server можете да използвате IDENTITY() функция за вмъкване на колона за идентичност в нова таблица.

Тази функция обаче не трябва да се бърка с IDENTITY() собственост , който се използва с CREATE TABLE и ALTER TABLE изявления.

IDENTITY() функция се използва само в SELECT изявление с INTO клауза за таблица. Така че можете да го използвате, когато прехвърляте данни от една таблица в друга, например.

Синтаксис

Синтаксисът е така:

IDENTITY (data_type [ , seed , increment ] ) AS column_name

тип_данни аргумент определя типа данни на колоната за идентичност. Валидни типове данни са всички типове данни от категорията тип данни с цяло число, с изключение на bit идесетични .

Семето е стойността, която се използва за първия ред, зареден в таблицата.

Увеличението е инкременталната стойност, която се добавя към стойността на идентичността на предишния ред, който е бил зареден.

име_на_колона аргумент предоставя името на колоната за идентичност, която искате да създадете.

Пример 1 – Основна употреба

Ето един основен пример за код.

SELECT 
  IDENTITY(int, 101, 10) AS pet_id,
  PetName AS pet_name
INTO BestFriends
FROM Pets;

Това избира данни от Домашни любимци таблица и я вмъква в нова таблица, наречена Най-добри приятели . Първата колона е колона за идентичност, която създавам с IDENTITY() функция. В този случай задавам началната стойност на 101 и инкремента на 10. Наричам тази колона pet_id .

Извиквам втората колона име_домашен любимец и го попълвам от колоната, наречена PetName .

Ето какво представляват Домашни любимци таблицата изглежда така:

CREATE TABLE Pets (
    PetId int IDENTITY(1,1) PRIMARY KEY, 
    PetName varchar(255)
    );
INSERT INTO Pets (PetName)
VALUES ('Homer'), ('Felix'), ('Ruff');

SELECT * FROM Pet;

Резултат:

+---------+-----------+
| PetId   | PetName   |
|---------+-----------|
| 1       | Homer     |
| 2       | Felix     |
| 3       | Ruff      |
+---------+-----------+

И ето какво са Най-добрите приятели таблицата изглежда след прехвърляне на данните:

SELECT * FROM BestFriends;

Резултат:

+----------+------------+
| pet_id   | pet_name   |
|----------+------------|
| 101      | Homer      |
| 111      | Felix      |
| 121      | Ruff       |
+----------+------------+

Така че имената на домашни любимци остават същите, но колоната за идентичност съдържа различни стойности (защото използвах IDENTITY(int, 101, 10) , в сравнение с IDENTITY(1,1) за Домашни любимци таблица).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Запазване на връзките родител-дете при копиране на йерархични данни

  2. Използване на SQL Server като хранилище за изображения

  3. Как COUNT() работи в SQL Server

  4. Как мога да архивирам отдалечена база данни на SQL Server на локално устройство?

  5. Има ли функция Max в SQL Server, която приема две стойности като Math.Max ​​в .NET?