デバッグしようとしているERPシステムがあり、フロントエンドからコマンドを発行すると、SQL Serverで一連のクエリが実行されます。
クエリのセットにはDELETE
、テーブルからいくつかのレコードを実行して削除するステートメントがありますが、何らかの理由でそれらのレコードは削除されません。
なぜこれが起こらないのかを理解するために、いくつかの状況を試しました。
- フロントエンド コマンドと SQL Server からの明示的なバックエンド クエリ セットの両方から発行された大きなクエリでテーブルをロックしようとしました。
- テーブルへのユーザー アクセスを確認しようとしましたが、正しいです。
- ネットワーク接続の問題も考慮しましたが、この
DELETE
ステートメントの前後に実行された同じセットのステートメントが他にもあるため、これを除外しました。
DELETE
他に調べることができるものはありますか、またはステートメントが実行されない可能性を知っていますか?
問題を再現しようとしていて、アイデアがないので、どんな提案も役に立ちます。
アップデート:
あなたの要求によると、これはクエリです
DELETE
FROM Payments
WHERE transactionID = 5005281
更新 2 :
フロントエンドからコマンドを発行するときにプロファイラーを実行したので、DELETE
ステートメントがクエリに存在する場合、それはアプリケーション ロジックによって抑制されませんでした。また、DELETE 後にレコードが再挿入されると疑われるストアド プロシージャの呼び出しもありません。