Je kan niet voeg IDENTITY
toe naar een bestaande kolom. Het kan gewoon niet.
U moet een nieuwe . maken kolom van het type INT IDENTITY
en laat dan de oude kolom vallen die je niet meer nodig hebt (en hernoem eventueel de nieuwe kolom naar de oude naam - als dat nodig is)
Ook:ik zou niet doe dit in de visuele ontwerper - dit zal proberen de tabel opnieuw te maken met de nieuwe structuur, kopieer over alle gegevens (alle 10 miljoen rijen), en laat dan de oude tabel vallen.
Het is veel efficiënter om rechte T-SQL-statements te gebruiken - dit zal een "in-place" update uitvoeren, niet-destructief (er gaan geen gegevens verloren), en niet moet ongeveer 10 miljoen rijen kopiëren in het proces...
ALTER TABLE dbo.YourTable
ADD NewID INT IDENTITY(1,1) NOT NULL
Wanneer u een nieuwe kolom van het type INT IDENTITY
toevoegt aan uw tafel, dan wordt deze automatisch gevuld met opeenvolgende nummers. U kunt dit niet voorkomen en u kunt de waarden ook niet later bijwerken.
Geen van beide opties is uiteindelijk echt nuttig - je zou kunnen eindigen met verschillende ID-waarden.... om dit goed te doen, zou je het volgende moeten doen:
- maak de nieuwe tabel van tevoren, met de juiste structuur en de
IDENTITY
al aanwezig - zet vervolgens
SET IDENTITY_INSERT (yourtable) ON
in die tabel zodat waarden in de identiteitskolom kunnen worden ingevoegd - kopieer deze gegevens van de originele bron
- identiteitsinvoer weer uitschakelen:
SET IDENTITY_INSERT (yourtable) OFF
Alleen met deze aanpak kun je dezelfde ID's krijgen in een IDENTITY-kolom in je nieuwe tabel.