1

我正在使用 Microsoft SQL Server 2008。在数据库中,我有一个带有自动增量字段 (ID) 的表。我已经在表中插入了两行,因此下一行的 ID 将为 3。我想要做的是,当插入下一行时,它的 ID 的值例如为 100。有没有怎么做?(不要告诉我插入和删除97行)

如果不是,那么我可以尝试重新创建表,但是如何将 ID 的值设置为最初定义的某个值,即我希望它从 100 开始,而不是从 1 开始?

4

2 回答 2

4

是的当然:

SET IDENTITY_INSERT dbo.YourTable ON

INSERT INTO dbo.YourTAble(AutoIncID, ...other columns....)
VALUES(100, ......)

SET IDENTITY_INSERT dbo.YourTable OFF

通过使用,SET IDENTITY_INSERT ... ON可以将值显式插入到IDENTITY列中。不过,别忘了关掉它!并且在您与 SQL Server 的连接中,一次只能有一个表具有此设置ON

另外:一旦你这样做了,现在你的当前IDENTITY值将是 100 - 所以你以正常方式(没有SET IDENTITY_INSERT ON活动)插入的下一行将获得 101 的标识值,然后是 102,依此类推

于 2013-04-27T14:24:41.023 回答
2

或者你可以这样做:

dbcc checkident ("YourTable", RESEED, 99)

这将使下一个插入以 100 的 id 进入

于 2020-07-31T20:00:30.633 回答