Решено: вмъкване на самоличност на sql сървър

Последна актуализация: 09/13/2023
Автор: SQL SourceTrail

Identity Insert е атрибут на SQL Server, използван, когато искате да вмъкнете изрични стойности в колоната за самоличност в таблица. В SQL Server по подразбиране не можете да вмъкнете своя собствена стойност в колоната за самоличност. Но при определени обстоятелства искате да вмъкнете свои собствени стойности в колоната за самоличност и тогава се появява Вмъкване на самоличност.

Вложка за самоличност ви позволява да направите това. Преди да разберете как да използвате Вмъкване на самоличност, нека първо разберем какво е колона за самоличност.

CREATE TABLE Employee
(
    ID int IDENTITY(1,1),
    Name varchar(255),
    Salary decimal
)

Тук ID е колона за самоличност. Когато вмъкнете нов запис, SQL Server автоматично увеличава ИД.

Проблемът

Да предположим, че мигрирате данни от стара база данни. В старата база данни имаше поддържани идентификатори. Имате подобна структура и в новата база данни. Сега, докато мигрирате, искате да запазите същите стари идентификатори. Но SQL Server няма да го позволи по подразбиране, защото ID е колоната за самоличност.

Решението на проблема

Това е моментът, когато можете да използвате Вмъкване на самоличност. Ето ръководство стъпка по стъпка как да го използвате.

Стъпки за използване на вмъкване на самоличност

Първо, трябва да зададете Вмъкване на идентичност на ON за тази конкретна таблица, както е показано по-долу:

SET IDENTITY_INSERT Employee ON

След като го включите, можете да вмъкнете свои собствени стойности в колоната за самоличност.

Сега въведете вашите собствени стойности.

INSERT INTO Employee(ID, Name, Salary)
VALUES(1, 'John', 50000)

След това трябва да настроите вмъкването на идентичност на ИЗКЛЮЧЕНО за тази таблица, както е показано по-долу:

SET IDENTITY_INSERT Employee OFF

Включени функции

SET IDENTITY_INSERT е функция в SQL Server, която се използва за вмъкване на изрични стойности в колоната за самоличност.

Кратко предупреждение: моля, боравете с тази функция внимателно, защото може да наруши идентичността на последователността, следователно трябва да се използва разумно.

Подобни библиотеки

Докато SQL Server използва IDENTITY_INSERT за управление на колони за идентичност, различните СУБД имат сходна концепция. Например атрибутът AUTO_INCREMENT на MySQL също позволява да се зададе поле за автоматично нарастване в база данни. Еквивалентната функционалност на Oracle се осигурява от комбинация от последователности и тригери.

Identity Insert е мощна функция, предоставена от SQL Server. Много е полезно при изпълнение на задачи като мигриране на данни или копиране на данни от една база данни в друга. Въпреки това трябва да се използва внимателно, за да се избегнат злоупотреби и грешки в целостта на данните. Продължавайте да изследвате и кодирате!

Подобни публикации:

Оставете коментар