このトリガー:INSTEAD OFトリガーをSCOPE_IDENTITYと連携させる方法はありますか?
ALTER TRIGGER InsteadTrigger on CustomerView
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Person
SELECT FirstName, LastName
FROM inserted
は、このクエリはnullを返すようにします。
INSERT INTO CustomerView (FirstName, LastName) Values ('Jonathan', 'Allen')
SELECT SCOPE_IDENTITY()
トリガーを修正してSCOPE_IDENTITYが正しい値を返す方法はありますか? (@@ IDENTITYを使用することはできません。なぜなら、関係するテーブルに他のトリガーがある可能性があるからです。)
P.S.私の顧客はこれについて尋ねています。私は意図的にこのような状況に陥ることはありません。 –
最初に、INSERTが1行しか処理しないと想定するという非常に一般的なエラーを作ります。 1つのinsert文で複数の行を挿入することができます。 –
いいえ私はそうではありません。トリガーは複数の行に対して機能し、SCOPE_IDENTITYが1つだけ挿入されている場合を除き、誰もその操作を期待しません。 –