トランザクションを作成する.NETコードがあります。このトランザクションでは、挿入/更新とそれに続く検証が実行されます。検証が失敗すると、変更をロールバックするための例外がスローされます。トランザクション内の行の前の状態を読み取ることはできますか?
このVB.NETコードに、現在の状態と行の以前の状態(挿入/更新前の状態)を確認する検証ルールを追加する必要があります。基本的に私の妥当性検査ルールでは、B→AではなくA→Bへの状態遷移が可能です。
現在のトランザクション以外の行の状態をクエリするにはどうすればよいですか?つまり、挿入/更新の前に行の状態を照会することはできますか?
あなたはトリガーが欲しいのと同じように聞こえますが、これはまさにそれを行うことができます。 – pmbAustin
現在の状態を照会するだけで(行を選択)、検証を行い、検証が成功した場合にのみ更新/挿入します。トリガによって行が挿入/更新されないようにすることもできます(pmbAustinによると)。これにより、コードの検証をより簡単に(たとえば、メッセージをユーザに表示したり、例外を投げるなど)行うことができます。トランザクション外の現在の状態を照会する必要はありません。 – IngoB
異なるSqlConnectionを使用して同じデータをクエリすると、トランザクションで変更される前の状態のデータが表示されます。それはあなたが欲しいものですか? – FLICKER