Tips

シーケンスナンバーをリセットする

日付2009/08/21
ID75872 (英語原文参照)
バージョン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を足しています。