SQL Server IDENTITY_INSERT giver eksplicitte værdier, der skal indsættes i identitet kolonne i en tabel.
IDENTITY_INSERT-sætningen skal indstilles for at indsætte eksplicit værdi for identitetskolonne. Som standard er IDENTITY_INSERT slået fra.
syntaks
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
databasenavn
er navnet på den database, hvor den specificerede tabel findes.
schema_name
er navnet på det skema, som tabellen tilhører.,
table_name
er navnet på en tabel med en identitetskolonne.
lad os se på et eksempel på SET IDENTITY_INSERT I s .l SERVER.
følgende eksempel viser, hvordan IDENTITY_INSERT bruges til en given identitetsværdi eksplicit for identitetskolonne.
Vi opretter en tabel-which, der har et identitetskolonne-ID. Lad os kontrollere, om vi forsøger at videregive eksplicit værdi for identitetskolonne ID.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
Som vi ser, giver det en fejl med en eksplicit værdi for identitetskolonnen i tabel.og antyder også, at hvis vi vil indsætte eksplicit værdi for identitetskolonne, skal IDENTITY_INSERT være tændt.
nu forsøger vi at køre over sætningen igen efter indstilling IDENTITY_INSERT på .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
Som vi ser , indsættes eksplicit værdi for identitetskolonne i tabellen.,
i ovenstående erklæring skal vi angive kolonnelisten under indsatsen , ellers tillader det ikke eksplicit værdi for identitetskolonne og kaster en fejl.
som vi ser i følgende erklæring , selv efter IDENTITY_INSERT ON, giver det stadig en fejl med eksplicitte værdier for identitetskolonne, da vi skal angive kolonnenavnet under indsatsen.