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

Zresetuj klucz podstawowy (int jako tożsamość)

Maksymalna wartość bigint to 9 223 372 036 854 775 807 . Jeśli w ciągu jednego dnia zdobędziesz 8 cyfr, nadal potrzebujesz 10 dni, aby osiągnąć maksimum. To jakieś 25 milionów lat.

Zakładając, że nadal chcesz zresetować kolumnę, pierwsze pytanie, jakie mam, brzmi:czy kolejność wierszy jest ważna? To znaczy, czy polegasz na fakcie, że wiersz 1000 występuje przed 1100 dla, powiedzmy, porządku chronologicznego lub w inny sposób bezwzględnego? Jeśli nie, to jest proste:usuń kolumnę i dodaj ją ponownie. Hej presto, nowe wartości.

Jeśli chcesz zachować porządek, musisz zrobić to trochę ostrożniej:

  1. Zablokuj stół;
  2. Zmień typ, aby nie był już automatycznym przyrostem;
  3. Utwórz nową kolumnę. Najlepiej na razie nie ma indeksów, ponieważ aktualizacja indeksu spowolni wstawki;
  4. Wypełnij wartości drugiej pętli pewnego rodzaju pętlą zwiększającą licznik (jak sztuczka z rownum SQL Server) porządkującą wstawki, aby pasowały do ​​oryginalnej kolejności;
  5. Zastąp starą kolumnę nową;
  6. Zresetuj automatyczne przyrosty i stan klucza podstawowego.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączyć się z SQL Server z Linuksa przez JDBC przy użyciu IntegratedSecurity (uwierzytelnianie Windows)?

  2. Fizyczna lokalizacja danych FILESTREAM

  3. Jak wywołać procedurę składowaną w widoku?

  4. Monitorowanie oczekiwanej długości życia strony w SQL Server

  5. Jak sformatować datę i godzinę w SQL Server