Lệnh để đặt lại thuộc tính nhận dạng là
DBCC CHECKIDENT (tablename, RESEED, new_reseed_value)
Khi bạn muốn đặt danh tính cột thành 12345, bạn chạy điều này
DBCC CHECKIDENT (beer, RESEED, 12345)
Khi bạn muốn xóa các hàng kiểm tra và khôi phục giá trị về giá trị trước đó, bạn thực hiện như sau.
DELETE
FROM beer
WHERE beer_id >= 12345 ;
DECLARE @NewSeed NUMERIC(10)
SELECT @NewSeed = MAX(beer_id)
FROM beer ;
DBCC CHECKIDENT (beer, RESEED, @NewSeed)
Đây là một minh chứng cho kịch bản của bạn. Lưu ý rằng cột beer_id được tạo bằng IDENTITY (1, 1)
thuộc tính, đặt danh tính thành 1 với gia số là 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 ;