私は2つのテーブルを持っています:
- 財産
- Property_Localize
プロパティからレコードを削除するSP:
- (削除_SP)
Property_Localize
プロパティからレコードを削除する代わりに、最初にテーブルから関連するレコードを削除し、次にプロパティテーブルからレコードを削除するトリガーがあります..
Property table's
主キーは、他のテーブルでも外部キーとして使用されます。
今、レコードを削除しようとしていますDelete_SP.
property
テーブルに他のテーブルのレコードが関連付けられている場合、例外がスローされます。この例外は で処理されtry..catch block
ます。したがって、いずれの場合でも、SP は出力パラメータにデフォルト値を返し、正常に実行されます。
この SP をバックエンド (SQL Server Management Studio) から実行すると、これはまったく問題なく機能します。
しかし、asp.net からこの SP を実行すると、次のエラーが発生します。
「バッチの最後にコミットできないトランザクションが検出されました。トランザクションはロールバックされます。」
適切な出力パラメータを提供しますが。
また、トリガーに try catch と明示的なトランザクション ブロックを追加しようとしましたが、それでも同じエラーが発生します。
どんな助けでも大歓迎です。
言い忘れましたが、CodeSmith の生成されたデータベース レイヤーを使用しています。