5

テーブルを切り捨てるときに、自動インクリメントされたインデックスフィールドが中断したところから続行されることをMySQLで覚えているようです。そのため、最大の ID が 100 であるテーブルが切り捨てられた場合、切り捨て後の次の ID は 101 になります。

SQL Serverでこれを行う方法はありますか? 1000 行を超えるテーブルを切り捨てましたが、切り捨てた後、ID 列の次の新しい ID が 1 に戻りました。これからも続けてほしいです。

4

3 に答える 3

10

DBCC CHECKIDENT (<table name>, reseed, 1000)トリックを行う必要があります。

上記の reseed は次の番号が 1001 になることを意味するので、次の ID を 1000 にしたい場合は 999 に設定してください。

この記事では、もう少し詳しく説明します。

于 2013-07-01T15:51:49.633 に答える
4

MSDNから:

テーブルに ID 列が含まれている場合、その列のカウンターは列に定義されたシード値にリセットされます。シードが定義されていない場合、デフォルト値 1 が使用されます。ID カウンターを保持するには、代わりに DELETE を使用します。

テーブルを切り捨てるように設定されている場合は、切り捨てる前に手動で最大 ID を調べてから、 を使用してテーブルを再シードできますDBCC CHECKIDENT

于 2013-07-01T15:51:58.503 に答える