假设我有一张表  stu( a int , b int );
然后我要求在建表的时候字段 b 的值必须小于字段 a 的值,这个约束怎么建立啊????

解决方案 »

  1.   

    USE ForTest
    GO 
    IF OBJECT_ID('dbo.stu') IS NOT NULL
    DROP TABLE dbo.stu
    GO
    CREATE TABLE dbo.stu
    (
    a INT,
    b INT
    )
    ALTER TABLE dbo.stu
    ADD CONSTRAINT CH_D_T CHECK(b <= a)
    GO
    INSERT INTO dbo.stu
    这种约束是表级约束
      

  2.   

    create table stu
    (
       a int not null ,
       b int not null
    )
    alter table stu add constraint ck_a_b check(a>b)
      

  3.   


    好吧  谢谢大家O(∩_∩)O哈!  着急写错了,原题是对于两个时间类型的字段,beginTime 和 endTime 然后要求是 endTime 要大于 beginTime 而且是精确到小时!!!一时着急,大家看看这个怎么搞??当然也是需要建约束的!!
      

  4.   

    alter table stu 
    add constraint ck_time check(DATEDIFF(hh,begintime,endtime)>0)
      

  5.   


    这个样子的话 貌似这条语句:
    add constraint ck_time check( endtime>begintime )
    也是可以的啊?请详细解析下看看 谢谢O(∩_∩)O哈!
      

  6.   

    哦,我没理解你说的精确到小时是指的什么
    我做的时间比较,endtime>begintime至少1小时呵呵
      

  7.   


    嗯  是的  我也不太理解精确到1小时表示什么意思,后来我们就做成了你开始写的那种方式,然后就可以随便是神马意思了  O(∩_∩)O哈哈~ 
    还是谢谢你O(∩_∩)O哈!