■No19126 (小春 さん) に返信
>>ひとまず、Transact-SQLのストアドなのか、.NETプログラミングを使用したストアドなのか書いておいた方が良いと思います。
> CLRではなく、T-SQLのストアドです。
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をどうするかとかちゃんと設計で考慮する必要があり
ます。
|