域完整性是通过CHECK约束,DEFAULT约束,NOT NULL约束,数据类型和规则等实现,包括CREATE TABLE 中所有的列级约束,存储过程以及触发器。
这里不介绍图形操作。
CHECK约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。
语法格式:
CREATE TABLE table_name /*指定表名*/ (column_name datatype { NOT NULL | NULL /*指定为空性*/ | [ DEFAULT co nstraint_expression ] /*指定默认值 | [ CONSTRAINT constraint_name ] CHECK ( logical_expression )] /*CHECK约束表达式*/ }[,…n] [ CONSTRAINT constraint_name ] CHECK ( logical_expression )][, )关键字 CHECK表示 CHECK约束, logical_expression为 CHECK约束表达式。
USE stsc CREATE TABLE goods ( gid int NOT NULL, /*商品号*/ gname varchar(100) NOT NULL, /*商品名*/ gprice float NOT NULL CHECK(gprice<=500), /*价格*/ gclass varchar(60) DEFAULT 'articles of everyday use', /*类型*/ gamount int NOT NULL, /*数量*/ gdate date NULL, /*上架日期*/ trade_price float NOT NULL /*批发价格*/ ) <span style="font-family:Microsoft YaHei;font-size:12px;"> </span>
使用ALTER TABLE的ADD子句在修改表时创建CHECK约束的语法格式如下:
ALTER TABLE table_name ADD [<column_definition>] [CONSTRAINT constraint_name] CHECK (logical_expression)例如,修改表goods,增加批发价格列的CHECK约束:
USE stsc ALTER TABLE goods ADD CONSTRAINT CK_trade_price CHECK(trade_price<=500)<span style="font-family:Microsoft YaHei;font-size:12px;color:#3333ff;"><strong> </strong></span>
使用ALTER TABLE语句的DROP子句删除CHECK约束的语法格式如下:
ALTER TABLE table_name DROP CONSTRAINT check_name例如,删除对goods表中的批发价格列的约束:
USE stsc ALTER TABLE goods DROP CONSTRAINT CK_trade_price更多信息,请参考sql server 的联机丛书。