我的创建日期在users表中,领用日期在take表中 
怎么在check约束中建领用日期不能早于创建日期的约束啊?  

解决方案 »

  1.   

    create table T(T_date datetime,T2_date datetime )
    go
    create trigger T_insert on T
    after insert
    as
    if  exists(select 1 from inserted where T_date!<T2_date)
    begin
    raiserror 50005 N'开始时间不小于结束时间'
    rollback 
    end
    insert T select '2007-12-09','2007-12-09'
    /*
    服务器: 消息 50005,级别 16,状态 1,过程 T_insert,行 6
    开始时间不小于结束时间*/insert T select '2007-12-09','2007-12-10'select * from T
    /*
    T_date                                                 T2_date                                                
    ------------------------------------------------------ ------------------------------------------------------ 
    2007-12-09 00:00:00.000                                2007-12-10 00:00:00.000(所影响的行数为 1 行)
    */
    --drop table T
      

  2.   

    这个CHECK约束不能做,只能用触发器来规范业务规则,楼上正解
      

  3.   

    check,只能约束一个表中的规则,楼主是两个表,按理应该用触发器才可以,触发器是可以跨多个表制订约束规则的.