sql >> Database >  >> RDS >> Sqlserver

Identiteitskolom vervangen van int naar bigint

Nou, het zal echt geen snelle en gemakkelijke manier zijn om dit te doen....

Mijn aanpak zou zijn:

  1. maak een nieuwe tabel met identieke structuur - behalve de ID kolom is BIGINT IDENTITY in plaats van INT IDENTITY

    ----[ zet uw server hier in de exclusieve modus voor één gebruiker; gebruiker kan uw server vanaf dit punt niet meer gebruiken ]----

  2. vind en deactiveer alle beperkingen voor externe sleutels die verwijzen naar uw tabel

  3. zet SET IDENTITY_INSERT (your new table) ON

  4. voeg de rijen van uw oude tabel in de nieuwe tabel in

  5. zet SET IDENTITY_INSERT (your new table) OFF

  6. verwijder je oude tafel

  7. hernoem je nieuwe tafel naar de oude tafelnaam

  8. update alle tabellen met een FK-verwijzing naar uw tabel om BIGINT te gebruiken in plaats van INT (dat zou moeten kunnen met een simpele ALTER TABLE ..... ALTER COLUMN FKID BIGINT )

  9. maak alle externe-sleutelrelaties opnieuw aan

  10. nu kunt u uw server weer normaal gebruiken voor meerdere gebruikers



  1. SQL-query voor meest recente berichten

  2. Solr Numerieke overloop

  3. Databases klonen met PSDatabaseClone

  4. Te grote POST-gegevens. Verklein de gegevens of verhoog de post_max_size