Riješeno: umetanje identiteta na sql server

Posljednje ažuriranje: 09/13/2023

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!

Slični postovi: