gpt4 book ai didi

sql-server-2008 - 如何在 SQL Server 2008 中重新设置表标识并安全地撤消它?

转载 作者:行者123 更新时间:2023-12-03 01:58:16 25 4
gpt4 key购买 nike

我只需要执行此操作以进行测试,然后在测试完成后撤消它。

我在网上看到了一些关于如何重新设置表种子的教程,但关于如何撤消它的教程却很少。

假设表定义如下:

create table beer
(
beer_id numeric(10) not null,
mnemonic nvarchar(8)
);
go

假设我希望新身份暂时从 12345 开始,最后删除新行并将下一个身份设置为原来的身份。

最佳答案

重置身份属性的命令是

DBCC CHECKIDENT (tablename, RESEED, new_reseed_value)

当您想将列标识设置为 12345 时,您可以运行此命令

DBCC CHECKIDENT (beer, RESEED, 12345)

当您想要删除测试行并将值恢复为之前的值时,请执行以下操作。

DELETE
FROM beer
WHERE beer_id >= 12345 ;

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

DBCC CHECKIDENT (beer, RESEED, @NewSeed)

这是针对您的场景的演示。请注意,beer_id 列是使用 IDENTITY (1, 1) 属性创建的,该属性将标识设置为 1,增量为 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 ;

关于sql-server-2008 - 如何在 SQL Server 2008 中重新设置表标识并安全地撤消它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3526316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com