sql >> Database >  >> RDS >> Sqlserver

Hoe automatisch opnieuw te plaatsen na het gebruik van identity_insert?

Gebruik de informatie in deze link in combinatie met een SQL-functie die de max(RID) uit elke tabel haalt die je moet resetten. Als u bijvoorbeeld uw primary key seed bij 25000 wilt starten, gebruikt u de onderstaande code (StartSeedValue - 1)

DBCC CHECKIDENT('myTable', RESEED, 24999)

Dus in combinatie zou je zoiets moeten krijgen

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

Sorry voor de pseudo-code, het is een tijdje geleden dat ik een SQL-functie heb geschreven :)

BEWERKEN:

Bedankt voor de vangst, veranderde de INTEGER in INT

USE YourDBName
GO 
SELECT *
FROM sys.Tables
GO 

Dit geeft u een lijst van alle gebruikerstabellen in de database. Gebruik deze query als je 'loop' en dat zou het mogelijk moeten maken om de zaden op alle tafels te resetten.



  1. Room DB gebruiken in bibliotheekproject

  2. mysql_fetch_array() verwacht dat parameter 1 een bronprobleem is

  3. Databasetrends 2019 – SQL versus NoSQL, topdatabases, enkelvoudig versus meervoudig databasegebruik

  4. MySQL - opgeslagen procedure retourneert onverwachte waarde