web-dev-qa-db-ja.com

新しい自動増分値の割り当て

以下のように作成したテーブルがあります。

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でこれに対する解決策を見つけることができないようです

1
Dust

DBCC CHECKIDENTIDENTITY列を再シードします。

実行できるサンプルは次のとおりです。

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
10
Aaron Bertrand

以下を使用できます MSDN_DBCC CHECKIDENT お役に立てれば幸いです。

DBCC CHECKIDENT(Transact-SQL)

DBCC CHECKIDENTを使用して、ID列に新しい現在のID値を手動で設定できます。

DBCC CHECKIDENT 
 ( 
    table_name
        [, { NORESEED | { RESEED [, new_reseed_value ] } } ]
)
[ WITH NO_INFOMSGS ]

USE AdventureWorks2012;
GO
DBCC CHECKIDENT ('Person.AddressType', RESEED, 10);
GO
2
Heisenberg