SQL Server IDENTITY_INSERT permite valori explicite pentru a fi introdus în coloană de identitate a unui tabel.
declarația IDENTITY_INSERT trebuie să fie setat pe pentru a insera valoare explicită pentru coloana de identitate. În mod implicit IDENTITY_INSERT este oprit.
sintaxa
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
database_name
este numele bazei de date în care există tabelul specificat.
schema_name
este numele schemei din care face parte tabelul.,
table_name
este numele unui tabel cu o coloană de identitate.
să ne uităm la un exemplu de set IDENTITY_INSERT în SQL SERVER.
următorul exemplu demonstrează modul în care IDENTITY_INSERT este utilizat pentru a dat valoare de identitate în mod explicit pentru coloana de identitate.
creăm un tabel-X care are un ID de coloană de identitate. Să verificăm dacă încercăm să transmitem o valoare explicită pentru ID-ul coloanei de identitate.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
după Cum vom vedea, dă o eroare de o valoare explicită pentru coloana identității în masă X și, de asemenea, sugerează că, dacă vrem să introduceți valoare explicită pentru coloană de identitate atunci IDENTITY_INSERT trebuie să fie pornit.
acum vom încerca să ruleze mai sus declarație din nou după setarea IDENTITY_INSERT pe .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
după cum vedem , valoarea explicită pentru coloana de identitate este inserată în tabel.,
în declarația de mai sus , trebuie să specificăm lista de coloane în timpul inserării, altfel nu va permite o valoare explicită pentru coloana de identitate și va arunca o eroare.după cum vedem în următoarea declarație, chiar și după IDENTITY_INSERT pe, încă dă o eroare de valori explicite pentru coloana de identitate, deoarece trebuie să specificăm numele coloanei în timpul inserării.