Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zamień kolumnę tożsamości z int na bigint

Cóż, nie będzie to łatwy i szybki sposób, naprawdę....

Moje podejście byłoby następujące:

  1. utwórz nową tabelę o identycznej strukturze - z wyjątkiem ID kolumna będąca BIGINT IDENTITY zamiast INT IDENTITY

    ----[ włącz tutaj swój serwer w ekskluzywny tryb jednego użytkownika; od tego momentu użytkownik nie może korzystać z Twojego serwera ]----

  2. znajdź i wyłącz wszystkie ograniczenia klucza obcego odnoszące się do Twojej tabeli

  3. włącz SET IDENTITY_INSERT (your new table) ON

  4. wstaw wiersze ze starej tabeli do nowej tabeli

  5. wyłącz SET IDENTITY_INSERT (your new table) OFF

  6. usuń stary stół

  7. zmień nazwę nowej tabeli na starą nazwę tabeli

  8. zaktualizuj wszystkie tabele, które mają odniesienia FK do Twojej tabeli, aby używać BIGINT zamiast INT (powinno to być wykonalne za pomocą prostej ALTER TABLE ..... ALTER COLUMN FKID BIGINT )

  9. ponownie utwórz wszystkie relacje kluczy obcych

  10. teraz możesz przywrócić serwer do normalnego użytkowania przez wielu użytkowników



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodaj logowanie do serwera połączonego w programie SQL Server (przykład T-SQL)

  2. Salesforce SOQL z SQL Server

  3. Kompozytowy klucz podstawowy JPA

  4. Jak wykorzystać wynik instrukcji SQL select w funkcji dbo.fnSplit jako dane wejściowe?

  5. Nie można załadować biblioteki DLL „SqlServerSpatial.dll”