建立一个CHECK就可以了。不需要写触发器什么的。

解决方案 »

  1.   

    liuyun2003您好,请问假如:
    字段以次为名为[name] ,birthday , graduationdate, comeindate
    该怎么写呢?写出马上加分!
      

  2.   

    1:
    ALTER TABLE [dbo].[表] WITH NOCHECK ADD 
     CONSTRAINT [CK_表] CHECK (毕业日期 between dateadd(year,18,生日) and 入司日期)
    2:
    create trigger on 表
    For insert,update
    As
        if (毕业日期 not between dateadd(year,18,生日) and 入司日期)
        begin
            rollback transaction
            raiserror('(生日+18年)<毕业日期<=入司日期',16,-1)
            return
        end
      

  3.   

    alter table tablename
    add constraint ck_somename 
      check (生日+18年)<毕业日期 and (生日+18年)<=入司日期
    create trigger for insert,update
      on tablename
    AS
    declare @birthday datetime
    declare @bysj  datetime --毕业时间
    declare @rssj  datetime --入司时间
    select @birthday=生日,@bysj=毕业日期,@rssj=入司时间 from insertedif (dateadd(year,18,@birthday)>=@birthday) or (dateadd(yy,18,@birthday)>=@rssj)
      rollback tran祝你好运!!!开心就好!!