■19138 / ) |
Re[4]: SqlServerのストアドについて |
□投稿者/ 小春 (17回)-(2008/05/20(Tue) 14:29:07)
|
返信ありがとうございます。
■No19136 (はつね さん) に返信 > ■No19126 (小春 さん) に返信 > >>ひとまず、Transact-SQLのストアドなのか、.NETプログラミングを使用したストアドなのか書いておいた方が良いと思います。 >>CLRではなく、T-SQLのストアドです。 > > CLRではなく「SQL CLR」ですね。 すいません。CLRというと共通言語の方を指してしまうのですね。 今後略さず、SQL CLRと呼ぼうと思います。(未だ、組んだことはありませんが・・・。) 勉強になりました。
> >>CREATE PROCEDURE Hoge >>AS >>BEGIN >> INSERT INTO Hoge1 … ←.Net側(CLRではない)のトランザクションで >> >> INSERT INTO Hoge2 … ←ストアド内の別トランで >>END > > 未確認ですが、次のような感じでもダメですか? > > CREATE PROCEDURE Hoge > AS > BEGIN > INSERT INTO Hoge1 … ←.Net側(CLRではない)のトランザクションで > > BEGIN TRANSACTION > INSERT INTO Hoge2 … ←ストアド内の別トランで > COMMIT TRANSACTION > END > > でも、もし上手く意図どおりに動いたとしても、ストアド内の別トランザクションで > エラー発生したときのRollbackをどうするかとかちゃんと設計で考慮する必要があり > ます。
試しましたが、COMMIT TRANSACTIONでコミットされませんでした。 呼び出し元の.Netアプリ側のトランザクションが優先?されました。 う〜
|
|