SQL Server 2008で小さなバグ(機能)に遭遇しました。
@tranという名前で明示的なトランザクションを開始するストアドプロシージャがあります
....宣言@tranvarchar(30)='exp_trans';
BEGIN TRAN @tran IF @p_param is null ROLLBACK TRAN@tran...。
問題は、IMPLICIT_TRANSACTIONSをONに設定してストアドプロシージャを呼び出すと、フローがロールバックセクションにヒットし、エラーが発生することです。
「メッセージ6401、レベル16、状態1、行10はexp_tranをロールバックできません。その名前のトランザクションまたはセーブポイントが見つかりませんでした。」
これはある種の機能ですか、それとも実際に何が起こっているのですか?前もって感謝します