---假设在SQL SERVER 2005里面有一张表,其中有两个字段需要做唯一性约束,
---不能有重复值,但是允许其为空值,如果都是空值,则允许重复
CREATE TRIGGER [dbo].[insert] ON [dbo].[table1] INSTEAD OF INSERT AS BEGIN declare @i int; declare @errmsg char; declare cursor1 cursor for select count(*) num from inserted i, table1 t where (i.col1=t.col1 and i.col2=t.col2 and i.col1 is not null and t.col1 is not null) or (i.col1 is null and i.col2=t.col2) or (i.col2 is null and i.col1=t.col1); open cursor1; fetch cursor1 into @i; close cursor1; if (@i=0) insert into table1 select * from inserted; else begin set @errmsg='存在重复记录,插入失败'; RAISERROR(@errmsg,16,1); rollback; end END