В 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)
за Домашни любимци таблица).