PKとしてAutoIdentity列を持ち、「IdentificationCode」と呼ばれるnvarchar列を持つテーブルがあります。新しい行を挿入するときに必要なのは、テーブルで既存のIdentificationCodeを検索し、見つかった場合はトランザクションをロールバックすることだけです。
私は次のトリガーを書きました:
ALTER trigger [dbo].[Disallow_Duplicate_Ids]
on [dbo].[tbl1]
for insert
as
if ((select COUNT(*) from dbo.tbl1 e , inserted i where e.IdentificationNo = i.IdentificationNo ) > 0)
begin
RAISERROR('Multiple Ids detected',16,1)
ROLLBACK TRANSACTION
end
ただし、新しい行を挿入すると、そのようなIdentificationCodeがない場合でも、常にロールバックがトリガーされます。
誰か助けてくれませんか?
ありがとう