4

証拠

上の画像でわかるのは、テーブルがあり、そこからフィールドの最大値をクエリすると、where句に基づいて異なる結果が得られ、残りのクエリは無関係であると除外されているように見えることです。

バックエンドはMSDE2000、フロントエンドはVB.NET 2008で記述されたアプリケーションであり、検証はVPN経由でMSDEインスタンスに接続されたSSMS2008R2を使用して実行されます。

これはアプリケーション開発からのクローズドシステムですが、これを引き起こしているものを修正できれば、DBとアプリケーションの両方が動作を再開すると思います。

問題の原因は、Max([record_index])+ 1を要求したときです。ここで、[station_id] = 10の場合、値はそのテーブルにすでに存在するレコードとして表示され、一意の制約のために挿入が失敗します。 。

4

1 に答える 1

1

PK インデックスの再インデックスは問題を解決し、Max([record_index]) に対する上記のクエリが Max([record_index]) WHERE... と同じ数値を返すようにします。したがって、現時点では、インデックスの破損が唯一の論理的な答えです。DB エンジンは 12 年前のものですが、これは私たちに起こった唯一のことです。私はそれを受け入れる必要があると思います

于 2012-06-05T00:54:49.363 に答える