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

Hvordan genseede man en tabelidentitet i SQL Server 2008 og fortryder det hele sikkert?

Kommandoen til at nulstille identitetsegenskaben er

DBCC CHECKIDENT (tablename, RESEED, new_reseed_value)

Når du vil indstille kolonneidentiteten til 12345, kører du denne

DBCC CHECKIDENT (beer, RESEED, 12345)

Når du vil slette testrækker og gendanne værdien til den forrige værdi, gør du følgende.

DELETE
FROM beer
WHERE beer_id >= 12345 ;

DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;

DBCC CHECKIDENT (beer, RESEED, @NewSeed)

Her er en demonstration af dit scenarie. Bemærk, at kolonnen beer_id er oprettet med IDENTITY (1, 1) egenskab, som sætter identiteten til 1 med en stigning på 1.

CREATE TABLE beer
    (        
    beer_id NUMERIC(10) IDENTITY (1,1) NOT NULL,
    mnemonic NVARCHAR(8)
    );

GO

INSERT INTO beer(mnemonic) VALUES ('Beer 1')
INSERT INTO beer(mnemonic) VALUES ('Beer 2')

SELECT *
FROM beer ;

DBCC CHECKIDENT (beer, RESEED, 12345)
GO

INSERT INTO beer(mnemonic) VALUES ('Beer 3')
INSERT INTO beer(mnemonic) VALUES ('Beer 4')

SELECT *
FROM beer ;

DELETE
FROM beer
WHERE beer_id >= 12345 ;

DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;

DBCC CHECKIDENT (beer, RESEED, @NewSeed)
GO

INSERT INTO beer(mnemonic) VALUES ('Beer 5')
INSERT INTO beer(mnemonic) VALUES ('Beer 6')

SELECT *
FROM beer ;


  1. Flet mange data som én data

  2. MySQL WEEK() :Få alle uger inden for datointerval (med/uden registreringer)

  3. SQL Server FOR XML-omsluttende element?

  4. java læge aftalereservationsdatabase (mysql) program..har problemer med at designe aftaleskemaet