Il comando per reimpostare la proprietà identità è
DBCC CHECKIDENT (tablename, RESEED, new_reseed_value)
Quando si desidera impostare l'identità della colonna a 12345 si esegue questo
DBCC CHECKIDENT (beer, RESEED, 12345)
Quando si desidera eliminare le righe di test e ripristinare il valore al valore precedente, fai quanto segue.
DELETE
FROM beer
WHERE beer_id >= 12345 ;
DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;
DBCC CHECKIDENT (beer, RESEED, @NewSeed)
Ecco una dimostrazione per il tuo scenario. Si noti che la colonna beer_id viene creato con la proprietà IDENTITY (1, 1)
, che i semi della identità a 1 con un incremento di 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 Grazie, si presenta come una risposta completa. Darò una prova. –
Proprio come una FYI, se hai bisogno di sapere qual è il seme corrente puoi eseguire questo 'SELECT IDENT_CURRENT ('table_name')' – JMS10