Umetanje identiteta je atribut SQL Servera koji se koristi kada želite da umetnete eksplicitne vrijednosti u stupac identiteta u tablici. U SQL Serveru, prema zadanim postavkama, ne možete umetnuti vlastitu vrijednost u kolonu identiteta. Ali, u određenim okolnostima, želite da umetnete sopstvene vrednosti u kolonu identiteta i tada dolazi do umetanja identiteta.
Umetanje identiteta vam omogućava da to uradite. Prije nego što shvatimo kako koristiti umetanje identiteta, prvo da shvatimo šta je kolona identiteta.
CREATE TABLE Employee
(
ID int IDENTITY(1,1),
Name varchar(255),
Salary decimal
)
Ovdje je ID kolona identiteta. Kada umetnete novi zapis, SQL Server automatski povećava ID.
Problem
Pretpostavimo da migrirate podatke iz stare baze podataka. U staroj bazi podataka održavani su ID-ovi. I u novoj bazi podataka imate sličnu strukturu. Sada, tokom migracije, želite zadržati iste stare ID-ove. Ali SQL Server to neće dozvoliti po defaultu jer je ID kolona identiteta.
Rješenje problema
Tada možete koristiti umetanje identiteta. Evo vodiča korak po korak o tome kako ga koristiti.
Koraci za korištenje umetanja identiteta
Prvo, morate postaviti Identity Insert UKLJUČENO za tu određenu tabelu kao što je prikazano ispod:
SET IDENTITY_INSERT Employee ON
Nakon što ga UKLJUČITE, možete umetnuti vlastite vrijednosti u kolonu identiteta.
Sada unesite svoje vrijednosti.
INSERT INTO Employee(ID, Name, Salary) VALUES(1, 'John', 50000)
Zatim morate postaviti Identity Insert OFF za tu tabelu kao što je prikazano ispod:
SET IDENTITY_INSERT Employee OFF
Uključene funkcije
SET IDENTITY_INSERT je funkcija u SQL Serveru koja se koristi za umetanje eksplicitnih vrijednosti u stupac identiteta.
Kratka riječ opreza: pažljivo rukujte ovom funkcijom jer može narušiti identitet sekvence, stoga je treba koristiti razborito.
Slične biblioteke
Dok SQL Server koristi IDENTITY_INSERT za upravljanje kolonama identiteta, različiti DBMS-ovi imaju sličan koncept. Na primjer, MySQL AUTO_INCREMENT atribut također omogućava postavljanje polja za automatsko povećanje u bazi podataka. Oracle ekvivalentna funkcionalnost je obezbeđena kombinacijom sekvenci i okidača.
Identity Insert je moćna funkcija koju pruža SQL Server. Vrlo je korisno kada obavljate zadatke kao što su migracija podataka ili kopiranje podataka iz jedne baze podataka u drugu. Međutim, mora se pažljivo koristiti kako bi se izbjegla zloupotreba i greške u integritetu podataka. Nastavite istraživati i kodirati!
