医学文档阁  > 所属分类  >  生活百科   
[0]

约束

约束结构化查询语言,约束的命规则推荐采用“约束类型_约束段”这样的式。语法:ALTERTABLE表ADDCONSTRAINT约束约束类型具体的约束说明上述语法表示修改某个表,添加某个约束。其中,约束的命规则推荐采用“约束类型_约束段”这样的式。添加约束(将stuNo设为键):ALTERTABLEstuInfoADDCONSTRAINTPK_stuNoPRIMA......
目录

添加

语法:

ALTERTABLE表

ADDCONSTRAINT约束约束类型具体的约束说明

上述语法表示修改某个表,添加某个约束。其中,约束的命规则推荐采用“约束类型_约束段”这样的式。

示例

添加约束(将stuNo设为键):

ALTERTABLEstuInfo

ADDCONSTRAINTPK_stuNoPRIMARYKEY(stuNo)

添加唯一约束(身份号唯一):

ALTERTABLEstuInfo

ADDCONSTRAINTUQ_stuIDUNIQUE(stuID)

添加默认约束(如果地址不填,默认为“地址不详”):

ALTERTABLEstuInfo

ADDCONSTRAINTDF_stuAddressDEFAULT('地址不详')FORstuAddress

添加检查约束(要求年龄只能在15~40岁之间)

ALTERTABLEstuInfo

ADDCONSTRAINTCK_stuAgeCHECK(stuAgeBETWEEN15AND40)

添加外键约束表stuInfo和从表stuGrade建立系,段为stuNo):

ALTERTABLEstuGrade

ADDCONSTRAINTFK_stuNo

FOREIGNKEY(stuNo)REFERENCESstuInfo(stuNo)

GO

删除

语法

ALTERTABLE表

DROPCONSTRAINT约束

示例:

删除stuInfo表中地址默认约束的语句:

ALTERTABLEstuInfo

DROPCONSTRAINTDF_stuAddress

删除外键约束注意事项:

对于存在外键约束的表,如果进删除非空的外键,可能会出现错误。

a.如果在FOREIGNKEY约束的列中输入非NULL值,则此值必须在被用的列中存在,否则将返回违反外键约束的错误信息。

b.FOREIGNKEY约束应用于前面所讲的列,除非指定了源列。

c.FOREIGNKEY约束仅能用位于同一服务器上的同一数据库中的表。数据库间的用完整性必须通过触发器实现。有更多信息,请参见CREATETRIGGER。

d.FOREIGNKEY可以用同一表中的其它列(自用)。

e.列级FOREIGNKEY约束的REFERENCES子句仅能列出一个用列,且该列必须与定义约束的列具有相同的数据类型。

f.表级FOREIGNKEY约束的REFERENCES子句中用列的数必须与约束列列表中的列数相同。每个用列的数据类型也必须与列表中相应列的数据类型相同。

e.如果timestamp类型的列是外键或被用键的一部分,则不能指定CASCADE。

g.可以在相互间具有系的表上组使用CASCADE和NOACTION。如果SQLServer遇到NOACTION,将终止执语句并回滚相的CASCADE操作。当DELETE语句导致CASCADE和NOACTION组操作时,在SQLServer检查NOACTION操作之前将执所有CASCADE操作。

h.一个表最多可包含253个FOREIGNKEY约束

i.对于临时表不强制FOREIGNKEY约束

j.每个表在其FOREIGNKEY约束中最多可以用253个不同的表。

k.FOREIGNKEY约束只能用被用表的PRIMARYKEY或UNIQUE约束中的列或被用表上UNIQUEINDEX中的列。

INSERT和UPDATE规范类

以显示有系的“删除规则”和“更新规则”的信息。

删除规则

指定当数据库的最终用户尝试删除某一,而该包含外键系所涉及的数据时所发生的情况。如果设置为:

a.无操作显示一条错误信息,告知用户不允许执该删除操作,DELETE将被回滚。

b.级联删除包含外键系中所涉及的数据的所有

c.设置空如果表的所有外键列都可接受空值,则将该值设置为空。仅适用于SQLServer2005。

d.设置默认值如果表的所有外键列均已定义默认值,则将该值设置为列定义的默认值。仅适用于SQLServer2005。

更新规则

指定当数据库的用户尝试更新某一,而该包含外键系所涉及的数据时所发生的情况。如果设置为:

a.无操作显示一条错误信息,告知用户不允许执该删除操作,DELETE将被回滚。

b.级联删除包含外键系中所涉及的数据的所有

c.设置空如果表的所有外键列都可接受空值,则将该值设置为空。仅适用于SQLServer2005。

e.设置默认值如果表的所有外键列均已定义默认值,则将该值设置为列定义的默认值。仅适用于SQLServer2005。

附件列表


0

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

上一篇 明胶

下一篇 枕骨

同义词

暂无同义词