请问如何设置如此的约束???
有一表:
姓名 生日 毕业日期 入司日期
我想要建一个约束:
(生日+18年)<毕业日期<=入司日期
请问怎么约束?
如果用触发器;
又该怎么写?
create trigger for insert,update...............
能给完全解决者给全分!!!
问题点数:20、回复次数:6Top
1 楼liuyun2003(流云(老老实实做人,认认真真还贷))回复于 2003-09-02 13:42:35 得分 5
建立一个CHECK就可以了。不需要写触发器什么的。Top
2 楼layer781010(守护神)回复于 2003-09-02 13:51:44 得分 0
liuyun2003您好,请问假如:
字段以次为名为[name] ,birthday , graduationdate, comeindate
该怎么写呢?写出马上加分!Top
3 楼txlicenhe(马可)回复于 2003-09-02 13:55:32 得分 10
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
Top
4 楼lionstar(小狮子)回复于 2003-09-02 14:00:39 得分 5
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 inserted
if (dateadd(year,18,@birthday)>=@birthday) or (dateadd(yy,18,@birthday)>=@rssj)
rollback tran
祝你好运!!!
开心就好!!
Top
5 楼layer781010(守护神)回复于 2003-09-02 14:03:52 得分 0
给分时出现一下错误:
如何解决?
5,0,15
贴子回复次数大于跟给分次数Top
6 楼layer781010(守护神)回复于 2003-09-02 14:06:31 得分 0
再一次感谢大家的帮助!!!
谢谢众师兄!!!Top



