Sql-Server
分配新的自動增量值
我有一個如下創建的表。
CREATE TABLE [dbo].[Table1]( [ID] [INT] IDENTITY(1,1) NOT NULL, [Title] [VARCHAR](255) NULL, ...
假設最新的 ID 是 100(我有 100 條記錄)
有沒有辦法
ALTER
將此表的IDENTITY
列更改為現在的自動增量值為 500?所以最後我會有這樣的 ID 98, 99, 100, 500, 501, ….
我似乎無法在 T-SQL 中找到解決方案
您可以使用
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;
結果:
98 99 100 500 501 502
你可以使用下面的MSDN_DBCC CHECKIDENT希望對你有幫助!
DBCC CHECKIDENT (Transact-SQL)
您可以使用 DBCC CHECKIDENT 為標識列手動設置新的目前標識值。
DBCC CHECKIDENT ( table_name [, { NORESEED | { RESEED [, new_reseed_value ] } } ] ) [ WITH NO_INFOMSGS ]
例子
USE AdventureWorks2012; GO DBCC CHECKIDENT ('Person.AddressType', RESEED, 10); GO