1

アクセスデータベースがあり、次のコマンドを使用していくつかのテーブルを変更しました。

ALTER TABLE TestTable ALTER COLUMN ID AUTOINCREMENT(1001,1) 

このテーブルには、自動番号として最初の列IDがあります。テーブルを作成した後、コンパクト&リペアを行いました。ただし、データを挿入している間、最初のIDは1001ではなく1に設定されます。コンパクトな修復を行わない場合、最初のIDは期待どおりに1001に設定されます。コンパクトリペアがいつ実行されるかは制御できません。では、IDが常に1001から始まるようにする方法はありますか?

4

1 に答える 1

1

自動番号のシード値は静的ではありません。行を追加するとすぐに、シードは前のシード値に増分を加えた値にリセットされます。

コンパクトの意図的な機能は、自動番号フィールドに含まれる現在の値に基づいてシードをリセットすることです。

簡単な回避策はありません。

オートナンバーの現在のシード値をチェックし、1001未満の場合はDDLステートメントを実行するマクロを作成できautoexecます。これにより、データベースを開くたびに希望どおりに設定されます。

TestTableまたは、ID = 1000のダミー行を追加し、その行を削除しないようにすることもできます。しかし、それは醜いです。

または、ID Long Integerを作成し、独自のカスタム自動番号付けコードを作成して、そこに格納する値を決定することもできます。しかし、それは簡単でも便利でもありません。

于 2012-12-13T18:40:30.010 に答える