0

バックエンドとして SQL サーバーを使用して約 10 年間実行されている .NET アプリケーションを持っています。何らかの理由で、ここ 2 ~ 3 か月で 990 前後 (997 は 2 回、989 は 1 回だったと思います) の IDENTITY 番号を 3 回スキップすることにしました。システムがレコードを生成してから削除したり、何度も挿入しようとしたりするアクティビティは考えられません。これは非常に断続的な問題ですが、非常に奇妙であり、その真相を突き止めたいと思います。原因を見つける方法について何か考えがある人はいますか?

システムはさまざまなテクノロジの混合物です。古いものは ADO.NET で、新しいものは Linq to SQL です。多くのユーザーがいる非常にアクティブなシステムであるため、実行されたすべてのステートメントなどをログに記録することは現実的ではないと思います。

4

1 に答える 1

1

これは正常です - 更新の試みが制約違反のために失敗した場合 (たとえば、NULLnull 非許容列または存在しない外部キーに挿入しようとしたため)、ID フィールドは増加しますが、行は挿入しないでください。

次に挿入される行 (失敗しないと仮定) は、ID をインクリメントして挿入し、「ギャップ」を残します。

これは問題ではありません。

于 2013-04-18T09:36:11.177 に答える