シーケンスナンバーをリセットする
日付 | 2009/08/21 |
---|---|
ID | 75872 (英語原文参照) |
バージョン | 11.4 |
プラットフォーム | Mac & Win |
テーブルのSequence numberはコマンドで再設定することができます。
シーケンスナンバーをリセットするには、SET DATABASE PARAMETERコマンドにセレクタ31番を渡し、「現在の」シーケンスナンバーに新しい値を設定します。(つまり、このテーブルで次回、Sequence number関数をコールしたときには、この値+1が返されます。)
これまでにレコードが削除されたことのないテーブルであれば、全レコード数をシーケンスナンバーに設定すること考えられるでしょう。
たとえば、[Emp]テーブルのシーケンスナンバーをテーブルレコード数と同一に設定するのであれば、次のように記述します。
SET DATABASE PARAMETER([Emp];Table Sequence Number;Records in table([Emp]))
以前のレコードを削除したことがあるのであれば、Record number関数より、物理的なレコード番号を取得しても良いかもしれません。(ただし最後に作成されたレコードを削除したのであれば駄目です。)
ALL RECORDS([Emp]) LAST RECORD([Emp]) SET DATABASE PARAMETER([Emp];Table Sequence Number;(Record Number([Emp])+1))
注記:レコード番号は0から始まるのに対し、シーケンスナンバーは1から始まります。それで、上記の例ではレコード番号に1を足しています。