Quando in una tabella è definito un Campo Identity (contatore automatico) è possibile se necessario inserire delle righe forzando un valore sul campo contatore, disattivare tale campo per il tempo necessario all'inserimento.
Questo è il codice SQL di un esempio:
SET IDENTITY_INSERT [Database].[Owner].[NomeTabella] ON
INSERT INTO [Database].[Owner].[NomeTabella]
([CampoIdentity], [CampoValore])
VALUES(38, 101)
SET IDENTITY_INSERT [Database].[Owner].[NomeTabella] OFF
Come per tutti i comandi che in qualche modo modificano la funzionalità di una tabella, per poter eseguire questo comando è necessario che l'utente abbia una delle seguenti caratteristiche:
- Sia il proprietario dell'oggetto
- Sia il db owner
- Sia membro del ruolo ddladmin
- Sia membro del ruolo sysadmin
Questo non significa che per forza di cose l'utente del vostro programma debba essere sysadmin.
Tags: SQL, Identity, SqlServer