SQL Server IDENTITY_INSERT maakt het mogelijk om expliciete waarden in te voegen in de kolom identiteit van een tabel.
Het IDENTITY_INSERT-statement moet worden ingesteld om expliciete waarde in te voegen voor de kolom identiteit. Standaard is IDENTITY_INSERT uitgeschakeld.
syntaxis
SET IDENTITY_INSERT schema_name . ] table_name { ON | OFF }
database_naam
Is de naam van de database waarin de opgegeven tabel bestaat.
schema_naam
Is de naam van het schema waartoe de tabel behoort.,
table_name
Is de naam van een tabel met een identiteitskolom.
laten we eens kijken naar een voorbeeld van SET IDENTITY_INSERT in SQL SERVER.
het volgende voorbeeld laat zien hoe IDENTITY_INSERT wordt gebruikt om de identiteitswaarde expliciet te geven voor de kolom identiteit.
We maken een table-X met een ID van de identiteitskolom. Laten we controleren of we proberen om expliciete waarde door te geven voor identiteit kolom ID.,
CREATE TABLE X (ID INT IDENTITY(1,1) ) ;INSERT INTO X (ID) VALUES (1);
zoals we zien, geeft het een fout van een expliciete waarde voor de kolom identiteit in tabel X en suggereert het ook dat als we expliciete waarde voor de kolom identiteit willen invoegen, IDENTITY_INSERT moet worden ingeschakeld.
nu proberen we het bovenstaande statement opnieuw uit te voeren na het instellen van IDENTITY_INSERT .
SET IDENTITY_INSERT dbo.X ONINSERT INTO X (ID) VALUES (1);SET IDENTITY_INSERT dbo.X OFF
zoals we zien , wordt de expliciete waarde voor de kolom identiteit ingevoegd in de tabel.,
in het bovenstaande statement moeten we de kolomlijst specificeren tijdens het invoegen , anders zal het geen expliciete waarde voor de kolom identiteit toestaan en een fout geven.
zoals we zien in het volgende statement, zelfs na IDENTITY_INSERT op , geeft het nog steeds een fout van expliciete waarden voor de kolom identiteit omdat we de kolomnaam moeten specificeren tijdens het invoegen.