0

テーブルにトリガーの代わりがあります。トリガーは正常に機能していますが、ユーザーがUIを介してテーブルの一括更新を実行できるアプリケーションがあります。その場合、selectscope_identityはnullを返します。ユーザーがUIを介して更新を実行したときにバックグラウンドで何が起こっているかを確認するために、SQLプロファイラーを実行しました。

insert into Table(column1, column2,....)
values (value1, value2,.....)
go
select scope_identity()
go

この場合、トリガーの代わりに内部で定義されたscope_identity()は正しい値を返しますが、上記のステートメントのscope_identity()はnullを返し、アプリケーションはこの時点でエラーをスローします。これは、上記のscope_identityのスコープに含まれないトリガー内で挿入が行われているためだと思います。この問題は、トリガーの代わりにアフタートリガーを使用することで解決できることはわかっていますが、テーブルにはntext列が含まれているため、アフタートリガーを使用できません。ntext列をnvarchar(max)に変換することも、私にとってはオプションではありません。select scope_identity()に正しい値を返す方法についてのアイデアはありますか?

前もって感謝します。

4

1 に答える 1