sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan genindlæses automatisk efter brug af identity_insert?

Brug oplysningerne i dette link i kombination med en SQL-funktion, der henter max(RID) fra hver tabel, som du skal nulstille. For eksempel, hvis du vil starte din primære nøgleseed ved 25000, skal du bruge koden nedenfor (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Så i kombination bør du ende med sådan noget her

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

Undskyld for Pseudo-koden, det er et stykke tid siden, jeg har skrevet en SQL-funktion :)

EDIT:

Tak for fangsten, ændrede INTEGER til INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Dette vil give dig en liste over alle brugertabeller i databasen. Brug denne forespørgsel som din 'loop', og det skulle gøre det muligt at nulstille frøene på alle tabeller.



  1. Kan du ikke indsætte en ny række i postgres-databasetabellen?

  2. Svarende til Oracles RowID i MySQL

  3. Slet en post fra konsollen -- Ruby on Rails

  4. Brug af Template::Toolkit med matrixdata fra databasen