分配新的自动增量值

Dus*_*ust 1 sql-server auto-increment t-sql sql-server-2008-r2 identity

我有一个创建如下的表。

CREATE TABLE [dbo].[Table1](
    [ID] [INT] IDENTITY(1,1) NOT NULL,
    [Title] [VARCHAR](255) NULL,
    ...
Run Code Online (Sandbox Code Playgroud)

假设最新的 ID 是 100(我有 100 条记录)

有没有办法到ALTER这个表的IDENTITY列并将自动增量值更改为现在 500?

所以最后我会得到这样的 ID 98, 99, 100, 500, 501, ....

我似乎无法在 T-SQL 中找到解决方案

Aar*_*and 11

您可以使用DBCC CHECKIDENT重新设定IDENTITY列的种子。

这是您可以运行的示例:

SET NOCOUNT ON;
USE tempdb;
GO

CREATE TABLE dbo.foo(ID INT IDENTITY(1,1));
GO

INSERT dbo.foo DEFAULT VALUES;
GO 100

-- note: set it to ([the next value you want] - 1)
DBCC CHECKIDENT(N'dbo.foo', RESEED, 499);
GO

INSERT dbo.foo DEFAULT VALUES;
GO 3

SELECT ID FROM dbo.foo WHERE ID >= 98;
Run Code Online (Sandbox Code Playgroud)

结果:

98
99
100
500
501
502
Run Code Online (Sandbox Code Playgroud)