我写的防止相同数据插入的触发器有问题,大家看看。
CREATE TRIGGER TG_TB1 ON table1 FOR INSERT
AS
BEGIN
IF (SELECT COUNT(1) FROM table1 A INNER JOIN INSERTED B ON A.ygid = B.ygid AND A.changedate = B.changedate) > 1
BEGIN
ROLLBACK TRANSACTION
RAISERROR( 'ERROR ', 1, 16)
END
END
上面这个触发器的作用是要防止table1中插入的数据的ygid和changedate字段同时重复。单条插入的时候正常的,如果是批量的插入数据就会都插不进去。
如:INSERT INTO table1(ygid,changedate) SELECT ygid,changedate FROM table2
------解决方案--------------------建议楼主将两个字段建立一个联合索引,并添加Unique约束
这样就不用触发器了