Microsoftは、SQL Server 2012でID値を処理する方法を変更しました。その結果、SQLServerインスタンスまたはサーバーマシンを再起動した後のレコード間のIDギャップを確認できます。このIDギャップには他にもいくつかの理由がある可能性があります。これは、アップデートのインストール後のサーバーの自動再起動が原因である可能性があります。
以下の2つの選択肢を使用できます
-
トレースフラグ272oを使用します。これにより、生成されたID値ごとにログレコードが生成されます。このトレースフラグをオンにすると、ID生成のパフォーマンスに影響が出る可能性があります。
-
NOCACHE設定のシーケンスジェネレーターを使用する
ここで期待しているSQLServer2012でのトレースフラグ272の設定
-
「SQLServer構成マネージャー」を開きます
-
左側のペインで[SQLServerサービス]をクリックします
-
右ペインでSQLServerインスタンス名を右クリック->デフォルト:SQL Server(MSSQLSERVER)
-
[プロパティ]をクリックします
-
[スタートアップパラメータ]をクリックします
-
[スタートアップパラメータを指定する]テキストボックスに「-T272」と入力します
-
[追加]をクリックします
-
変更を確認します