我有一个表,其中一个 AutoIdentity 列作为它的 PK 和一个名为“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,它总是会触发回滚。
任何人都可以帮助我吗?
谢谢