Der Befehl, um die Identität Eigenschaft zurückgesetzt ist
DBCC CHECKIDENT (tablename, RESEED, new_reseed_value)
Wenn Sie die Spalte Identität 12345 festlegen möchten Sie diese laufen
DBCC CHECKIDENT (beer, RESEED, 12345)
Wenn Sie Testreihen löschen möchten, und den Wert wiederherstellen Mit dem vorherigen Wert machen Sie folgendes.
DELETE
FROM beer
WHERE beer_id >= 12345 ;
DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;
DBCC CHECKIDENT (beer, RESEED, @NewSeed)
Hier ist eine Demonstration für Ihr Szenario. Beachten Sie, dass die beer_id Spalte mit der IDENTITY (1, 1)
Eigenschaft erstellt wird, die Samen, die Identität zu 1 mit einer Schrittweite von 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 Danke, sieht aus wie eine vollständige Antwort. Ich werde es versuchen. –
Nur als ein FYI, wenn Sie wissen müssen, was der aktuelle Startwert ist, können Sie diese SELECT IDENT_CURRENT ('table_name') 'ausführen – JMS10