sql >> Databáze >  >> RDS >> Sqlserver

Nahradit sloupec identity z int na bigint

No, nebude to rychlý a snadný způsob, jak to udělat, opravdu...

Můj přístup by byl tento:

  1. vytvořte novou tabulku se stejnou strukturou - kromě ID sloupec je BIGINT IDENTITY místo INT IDENTITY

    ----[ zde uveďte svůj server do exkluzivního režimu pro jednoho uživatele; uživatel nemůže od tohoto okamžiku používat váš server ]----

  2. vyhledejte a deaktivujte všechna omezení cizího klíče odkazující na vaši tabulku

  3. zapněte SET IDENTITY_INSERT (your new table) ON

  4. vložte řádky ze staré tabulky do nové tabulky

  5. vypněte SET IDENTITY_INSERT (your new table) OFF

  6. smazat starou tabulku

  7. přejmenujte svou novou tabulku na starý název tabulky

  8. aktualizujte všechny tabulky, které mají odkaz FK na vaši tabulku, aby používali BIGINT místo INT (to by mělo být proveditelné pomocí jednoduchého ALTER TABLE ..... ALTER COLUMN FKID BIGINT )

  9. znovu vytvořit všechny vztahy cizího klíče

  10. nyní můžete svůj server opět vrátit k běžnému používání více uživateli



  1. Vyberte nejlepší odlišné výsledky seřazené podle frekvence

  2. Zjednodušte používání databáze (psychopg2) vytvořením modulu

  3. Mapujte bodové pole geometrie PostGIS pomocí Hibernate na Spring Boot

  4. dotaz na text uloženého programu pl/sql