SQL Idenity insert

Onlangs moest ik enkele records restoren in een SQL database, omdat die waren verwijderd. Op zich geen probleem, afgezien van het feit dat er een primary key op een van de kolommen zat die automatisch werd verhoogd. Nogal vervelend als je een record moet toevoegen met een specifieke primary key.

Ik kreeg dan ook de volgende melding:

_An explicit value for the identity column in table ‘<TABLE_NAME>’ can only be specified when a column list is used and IDENTITY_INSERT is ON.

Na even zoeken heb ik toch een oplossing gevonden. Blijkbaar kun je het genereren van een nieuw ID tijdelijk uitschakelen.

Hier heb je het commando

SET IDENTITY_INSERT  table_name ON

Je kunt nu zelf een ID opgeven. Zodra je klaar bent dient deze feature wel weer uit te worden gezet door

SET IDENTITY_INSERT table_name OFF

Nog iets dat gedaan moest worden is het expliciet opgeven van de kolommen die ik wilde invoeren. Ook geen probleem, maar je moet het wel weer allemaal uit typen.


Share