提示:
create trigger tr_tab_insert
on tab
for insert
as
if exists (select 存货编码 from inserted group by 存货编码 having count(*)>1)
BEGIN
   RAISERROR ('不许出现相同的存货编码.', 16, 1)
   ROLLBACK TRANSACTION
ENDgo

解决方案 »

  1.   

    累加:
    create trigger tr_tab_insert
    on tab
    INSTEAD OF insert
    as
    insert tab(存货编码,数量)
    select 存货编码,sum(数量) as 数量
    from inserted
    group by 存货编码
    go
      

  2.   

    建议不用触发器。
    在插入前加个判断即可:if exist(select 1 from ...)
    这样可以比较方便对错误信息做统一管理。
      

  3.   

    另外:
    我发现在插入2条记录时
    存货编码  数量 
    S1        10 
    S1        20
    每插一条几触发一次触发器,所以inserted表中的count(*)总是为1,这样就不可以与其他行进香进行判断了,这怎么办啊