sql >> Databasteknik >  >> RDS >> Sqlserver

Hur återställs automatiskt efter att ha använt identity_insert?

Använd informationen i denna länk i kombination med en SQL-funktion som får max(RID) från varje tabell som du behöver återställa. Till exempel, om du vill starta din primära nyckel seed vid 25000, använd koden nedan (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Så i kombination bör du sluta med något sådant här

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

Ursäkta för Pseudo-koden, det var ett tag sedan jag skrev en SQL-funktion :)

EDIT:

Tack för fångsten, ändrade INTEGER till INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Detta ger dig en lista över alla användartabeller i databasen. Använd den här frågan som din "loop" och det bör göra det möjligt att återställa fröna på alla tabeller.



  1. Laravel 8.x där Json Sök i Array

  2. TANH() Funktion i Oracle

  3. Tidsgräns för MySQL-frågan:(70100):Frågekörningen avbröts

  4. Hur WEEK() fungerar i MariaDB