Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Нулиране на първичен ключ (int като самоличност)

Максималната стойност за bigint е 9,223,372,036,854,775,807 . Ако сте стигнали до 8 цифри за един ден, пак ще ви трябват 10 дни, за да достигнете максимума. Това са около 25 милиона години.

Ако приемем, че все още искате да нулирате колоната, първият въпрос, който имам, е:важно ли е подреждането на редовете? Това означава, че разчитате ли на факта, че ред 1000 идва преди 1100 за, да речем, хронологично или по друг начин абсолютно подреждане? Ако не, лесно е:изтрийте колоната и я добавете отново. Здравей, нови ценности.

Ако трябва да поддържате реда, ще трябва да го направите малко по-внимателно:

  1. Заключете масата;
  2. Променете типа, така че вече да не се увеличава автоматично;
  3. Създаване на нова колона. Най-добре засега го накарайте да няма индекси, тъй като актуализирането на индекса ще забави вмъкванията;
  4. Попълнете стойностите във втория с някакъв вид цикъл, увеличаващ брояч (като трика rownum на SQL Server), подреждайки вмъкванията да съответстват на оригиналния ред;
  5. Заменете старата колона с новата;
  6. Нулирайте автоматичното нарастване и състоянието на първичния ключ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте база данни в SQL Server 2017

  2. Експортирайте xml данни с помощта на BCP команда в SQL Server

  3. Множество първични ключове с asp .net mvc 3

  4. Какво означава, когато Statement.executeUpdate() върне -1?

  5. Връщане на данни преди текущия месец