我有一个UserInfo表,要求在插入的时候其中的两列不能有重复值,列字义如下:
ID:长整型,自动增长,主键
Name:字符型,不为空
ZhuanYe:字符型
Sex:字符型要求其中Name列和ZhuanYe两列不能相同,比如数据ID    name  ZhuanYe   Sex
1     张     电子      男
2     王     机械      男
3     李     管理      男
4     李     管理      女
5     赵     机械      女其中第三行和第四行只能要其中的一行,这个应用在插入记录时的触发器应该怎么写呀???

解决方案 »

  1.   

    create trigger aaa UserInfo for insert
    as
    begin
     if exists(select * from UserInfo where (name=select name from inserted)
                                        and (ZhuanYe =select ZhuanYe from inserted))
       rollback
    end
      

  2.   

    我的建议就是在beforepost事件来处理的
    看看select Count(*) as Total From Table1 where 复合条件的 看看返回的结果决定是插入还是报错误的信息 应该可以实现的把
      

  3.   

    if exests (select * from userinfo where name in 
    (select name from inserted ) or zhuanye in(select zhuanye from inserted )).................
      

  4.   

    create trigger tri_insert on UserInfo 
    for insert  as
    begin
    if exests (select * from userinfo where name in 
    (select name from inserted ) or zhuanye in(select zhuanye from inserted ))rollbackend
      

  5.   

    正确通过的应为:
    Create trigger InsertUser 
    on UserInfo for insert
    as
    begin
      if (select Count(*) from UserInfo where (EMail in (select EMail from inserted)) and (ListNum in (select ListNum from inserted)))>1
        rollback
    end
      

  6.   

    Create trigger InsertUser 
    on UserInfo for insert
    as
    begin
      if exists(select * from UserInfo where name+ZhuanYe=inserted.name+inserted.ZhuanYe)
        rollback
    end