This Domain(Admin5.com) is for Sale:

SQLServer数据库实用技术(45)

时间:2007-12-23  来源:不详  作者:迈克DB
约束(Constraint)是MicrosoftSQLServer提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9章)。在SQLServer中有5种约束:主要害字约束(PrimaryKeyConstraint)、外要害字约束(ForeignKeyConstraint)、惟一性约束(UniqueConstraint)、检查约束(CheckConstraint)和缺省约束(DefaultConstraint)。

7.2.1主要害字约束
主要害字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主要害字,且IMAGE和TEXT类型的列不能被指定为主要害字,也不答应指定主要害字列有NULL属性。
定义主要害字约束的语法如下:
CONSTRAINTconstraint_name
PRIMARYKEY[CLUSTERED|NONCLUSTERED]
(column_name1[,column_name2,…,column_name16])
各参数说明如下:
constraint_name
指定约束的名称约束的名称。在数据库中应是惟一的。假如不指定,则系统会自动生成一个约束名。
CLUSTERED|NONCLUSTERED
指定索引类别,CLUSTERED为缺省值。其具体信息请参见下一章。
column_name
指定组成主要害字的列名。主要害字最多由16个列组成。
本文来自织梦

例7-3:创建一个产品信息表,以产品编号和名称为主要害字
createtableproducts(
p_idchar(8)notnull,
p_namechar(10)notnull,
pricemoneydefault0.01,
quantitysmallintnull,
constraintpk_p_idprimarykey(p_id,p_name)
)on[primary]

7.2.2外要害字约束
外要害字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主要害字定义相同时,就可以将这些列或列的组合定义为外要害字,并设定它适合哪个表中哪些列相关联。这样,当在定义主要害字约束的表中更新列值,时其它表中有与之相关联的外要害字约束的表中的外要害字列也将被相应地做相同的更新。外要害字约束的作用还体现在,当向含有外要害字的表插入数据时,假如与之相关联的表的列中无与插入的外要害字列值相同的值时,系统会拒绝插入数据。与主要害字相同,不能使用一个定义为TEXT或IMAGE数据类型的列创建外要害字。外要害字最多由16个列组成。
定义外要害字约束的语法如下:
CONSTRAINTconstraint_name
FOREIGNKEY(column_name1[,column_name2,…,column_name16])
REFERENCESref_table[(ref_column1[,ref_column2,…,ref_column16])]
[ONDELETE{CASCADE|NOACTION}]

copyright dedecms


[ONUPDATE{CASCADE|NOACTION}]]
[NOTFORREPLICATION]
各参数说明如下:
REFERENCES
指定要建立关联的表的信息。
ref_table
指定要建立关联的表的名称。
ref_column
指定要建立关联的表中的相关列的名称。
ONDELETE{CASCADE|NOACTION}
指定在删除表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,假如指定了值CASCADE,则在删除父表数据行时会将子表中对应的数据行删除;假如指定的是NOACTION,则SQLServer会产生一个错误,并将父表中的删除操作回滚。NOACTION是缺省值。
ONUPDATE{CASCADE|NOACTION}
指定在更新表中数据时,对关联表所做的相关操作。在子表中有数据行与父表中的对应数据行相关联的情况下,假如指定了值CASCADE,则在更新父表数据行时会将子表中对应的数据行更新;假如指定的是NOACTION,则SQLServer会产生一个错误,并将父表中的更新操作回滚。NOACTION是缺省值。
NOTFORREPLICATION
指定列的外要害字约束在把从其它表中复制的数据插入到表中时不发生作用。
例7-4:创建一个订货表,与前面创建的产品表相关联
createtableorders(

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息