如题,还望高手不吝赐教!不胜感激!

解决方案 »

  1.   


    --参考:
    1 与表有关的约束: 是表中定义的一种约束。
      可在列定义时定义该约束,此时称为列约束,
      也可以在表定义时定义约束,此时称为表约束。
      1.1与表有关的约束:
      包括列约束(表约束+NOT NULL)和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 
    2 域(Domain)约束: 
      在域定义中被定义的一种约束,
      它与在特定域中定义的任何列都有关系。
      2.1域约束:(sqlserver 不支持) 语法如下: 
      create domain domain_name as 
      data type [default default_value] 
      [constraint constraint_name] 
      check(value condition expression) 
      例如:
      create domain valid_no as 
      int constraint constraint_no 
      check(value between 100 and 999) 
      然后创建表时,使用valid_no域.
      create table TestDomain ( 
             emp_id valid_no, 
             emp_name varchar(10));
    3 断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
      3.1断言约束:不必与特定的列绑定,可以理解为能应用于多个表的check约束,因此必须在表定义之外独立创建断言。 
      语法如下:
      create assertion constraint_name check search condition 
      例如:
      create assertion_name check 
      (Emp_Sal.emp_id in(select emp_id from EmployeeInfo where emp_name is not null) 
      添加断言后,每当试图添加或修改Emp_Sal表中的数据时,
      就对断言中的搜索条件求值,如果为false,则取消执行,给出提示。