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

Jak automatycznie reseedować po użyciu identity_insert?

Skorzystaj z informacji w ten link w połączeniu z funkcją SQL, która pobiera max(RID) z każdej tabeli, którą trzeba zresetować. Na przykład, jeśli chcesz uruchomić ziarno klucza podstawowego na 25000, użyj poniższego kodu (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Tak więc w połączeniu powinieneś otrzymać coś takiego

DECLARE @maxVal INT
SELECT @maxVal = ISNULL(max(ID),0)+1 from mytable
DBCC CHECKIDENT('mytable', RESEED, @maxVal)

Przepraszam za pseudo-kod, minęło trochę czasu, odkąd napisałem funkcję SQL :)

EDYCJA:

Dzięki za haczyk, zmieniłem INTEGER na INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

To da ci listę wszystkich tabel użytkowników w bazie danych. Użyj tego zapytania jako „pętli”, co powinno umożliwić zresetowanie nasion we wszystkich tabelach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz arkusz Excela do tabeli tymczasowej za pomocą skryptu

  2. Rozwiązywanie problemów z wydajnością procesora SQL Server

  3. Wdróż bazę danych Code First Entity Framework

  4. SQL Server zlicza liczbę odrębnych wartości w każdej kolumnie tabeli

  5. Uwzględnij brakujące miesiące w zapytaniu Grupuj według