[seasar-dotnet:1368] Re: DBFlute とトリガーの相性について

kubo [E-MAIL ADDRESS DELETED]
2009年 6月 5日 (金) 16:14:07 JST


久保(jflute)です。

中井さん、菊池さん、こんにちは
こちら自分もとても勉強になりました。
ありがとうございます。

2009/6/5 Nakai <[E-MAIL ADDRESS DELETED]>:
> 中井です。
>
> set nocount onはしていませんでした。
> set nocount onで実行したところ正常に処理が終了しました。
>
> 菊池さん、ありがとうございました。
>
>
> 菊池和彦 <[E-MAIL ADDRESS DELETED]> wrote:
>
>> 菊池です
>>
>> トリガは before / after / insted of のどれでしょう。
>>
>> T-SQLではafter トリガで set nocount on をせずに(デフォルト)のまま行を更新していると
>> @@ROWCOUNTはトリガでの更新数に上書きされてしまう気がします。
>> (他のトリガ種別については試してないのでわかりません)
>>
>> まずはトリガにて set nocount on をしているかを確認してみてください。
>>
>>
>> 2009/06/05 14:18 に Nakai<[E-MAIL ADDRESS DELETED]> さんは書きました:
>> > お世話になっております。中井と申します。
>> >
>> > トリガーが存在するテーブルにBhvのUpdate、Deleteを実行すると
>> > Exceptionが発生してしまいました。
>> >
>> > <環境>
>> > Dbflute.Net 0.8.8.9
>> > SQLServer2005
>> >
>> >
>> > <トリガーの内容>
>> > テーブルの更新履歴を保存する為、
>> > 「T_A」テーブルに対してInsert、Update、Deleteされたレコードを
>> > 「T_A_HISTORY」テーブルにInsertします。
>> >
>> > 「T_A_HISTORY」テーブルのカラムは「T_A」テーブルのカラム+「履歴タイプ(I,U,D)」+「挿入時刻」です。
>> >
>> >
>> > <Exceptionの内容>
>> > ・Update時
>> >        EntityDuplicatedException
>> > {"The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=2: entity={省略}"}
>> >
>> > ・Delete時
>> >  EntityAlreadyUpdatedException
>> > [EDAO0005]
>> >
>> >
>> > 更新の時、メッセージに「updatedCount=2」とあるのは、HISTORYテーブルにトリガーが挿入したレコードもカウントしているのでしょうか?
>> >
>> > 今のところ回避方法として、
>> > ・トリガーを削除
>> > ・ExBhvにInsertWithHistory、UpdateWithHistory、DeleteWithHistoryメソッドを
>> > 作成し、この中で「T_A_HISTORY」への登録を自前で行う
>> >
>> > を考えているのですが、他によい方法があれば御教授頂けないでしょうか。
>> >
>> > よろしくお願い致します。
>> > _______________________________________________
>> > seasar-dotnet mailing list
>> > [E-MAIL ADDRESS DELETED]
>> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>> >
>>
>>
>>
>> --
>>  Kazuhiko Kikuchi <[E-MAIL ADDRESS DELETED]>
>>   Microsoft Valueable Professional - Visual C# 2004-2008
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内