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

Jak automaticky znovu nasít po použití identity_insert?

Použijte informace v tomto odkazu v kombinaci s funkcí SQL, která získá max(RID) z každé tabulky, kterou potřebujete resetovat. Pokud například chcete spustit primární klíč na 25000, použijte níže uvedený kód (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Takže v kombinaci byste měli skončit s něčím takovým

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

Omlouvám se za Pseudokód, už nějakou dobu jsem nenapsal funkci SQL :)

EDIT:

Díky za úlovek, změňte INTEGER na INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Tím získáte seznam všech uživatelských tabulek v databázi. Použijte tento dotaz jako svou 'smyčku' a to by mělo umožnit resetovat semena na všech stolech.



  1. Jak vzdáleně připojit databázi MySQL pomocí Python+SQLAlchemy?

  2. Jak se vyhnout vkládání duplicitních záznamů do dotazu SQL INSERT (5 snadných způsobů)

  3. Jak zobrazit všechny neplatné objekty v PostgresQL

  4. Jak SQL Vyberte vztah jedna k mnoha a sloučte výstup