澳门新萄京 11

SQLServer之FOREIGN【澳门新萄京】 KEY约束

FOREIGN KEY约束添加规则

1、外键约束并不仅仅可以与另一表的主键约束相链接,它还可以定义为引用另一个表中
UNIQUE 约束的列。

2、如果在 FOREIGN
KEY 约束的列中输入非 NULL
值,则此值必须在被引用列中存在;否则,将返回违反外键约束的错误信息。 若要确保验证了组合外键约束的所有值,请对所有参与列指定
NOT NULL。

3、FOREIGN KEY
约束仅能引用位于同一服务器上的同一数据库中的表。 跨数据库的引用完整性必须通过触发器实现。

4、FOREIGN KEY
约束可引用同一表中的其他列。 此行为称为自引用。

5、在列级指定的
FOREIGN KEY 约束只能列出一个引用列。 此列的数据类型必须与定义约束的列的数据类型相同。

6、在表级指定的
FOREIGN KEY 约束所具有的引用列数目必须与约束列列表中的列数相同。 每个引用列的数据类型也必须与列表中相应列的数据类型相同。

7、对于表可包含的引用其他表的 FOREIGN KEY
约束的数目或其他表所拥有的引用特定表的 FOREIGN KEY 约束的数目, 数据库引擎 都没有预定义的限制。 尽管如此,可使用的 FOREIGN KEY
约束的实际数目还是受硬件配置以及数据库和应用程序设计的限制。 表最多可以将 253
个其他表和列作为外键引用(传出引用)。 SQL
Server 2016 (13.x) 将可在单独的表中引用的其他表和列(传入引用)的数量限制从
253 提高至 10,000。 (兼容性级别至少必须为
130。)数量限制的提高带来了下列约束:

DELETE 和 UPDATE
DML 操作支持大于 253 个外键引用。 不支持
MERGE 操作。

对自身进行外键引用的表仍只能进行 253
个外键引用。

列存储索引、内存优化表和 Stretch Database
暂不支持进行超过 253 个外键引用。

8、对于临时表不强制 FOREIGN KEY 约束。

9、如果在 CLR
用户定义类型的列上定义外键,则该类型的实现必须支持二进制排序。

10、仅当 FOREIGN
KEY
约束引用的主键也定义为类型 varchar(max) 时,才能在此约束中使用类型为varchar(max) 的列。

DEFAULT约束添加规则

1、若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为NULL。

2、如果“默认值”字段中的项替换绑定的默认值(以不带圆括号的形式显示),则将提示你解除对默认值的绑定,并将其替换为新的默认值。

3、若要输入文本字符串,请用单引号 (‘)
将值括起来;不要使用双引号
(“),因为双引号已保留用于带引号的标识符。

4、若要输入数值默认值,请输入数值并且不要用引号将值括起来。

5、若要输入对象/函数,请输入对象/函数的名称并且不要用引号将名称括起来。

使用SSMS数据库管理工具添加外键约束

本示例演示当表结构已存在时添加外键约束,创建表时添加外键约束步骤和表结构存在时添加外键步骤相同。示例演示如下:

1、连接数据库,打开要添加外键的数据表-》右键点击-》选择设计。

澳门新萄京 1

2、在表设计窗口-》选择要添加外键的数据行-》右键点击-》选择关系。

澳门新萄京 2

3、在外键关系窗口中-》点击添加。

澳门新萄京 3

4、添加完毕后-》首先修改表和列规范。

澳门新萄京 4

5、在表和列窗口中-》输入外键名-》在左边选择主表和关联的列-》在右边选择从表和作为外键的列-》点击确定。

澳门新萄京 5

6、在外键关系窗口中-》可选择添加或者不添加外键描述-》可选择添加或者不添加修改或者删除数据时级联操作-》可选择添加或者不添加强制外键约束-》可选择添加或者不添加强制用于复制-》点击关闭。

澳门新萄京 6

7、点击保存按钮(ctrl+s)-》此时表会弹出警告窗口,点击是-》刷新查看外键是否添加成功。

澳门新萄京 7

澳门新萄京 8

使用SSMS数据库管理工具添加DEFAULT约束

1、连接数据库,选择数据表-》右键点击-》选择设计。

澳门新萄京 9

2、在表设计窗口中-》选择数据列-》在列属性窗口中找到默认值或绑定-》输入默认值(注意默认值的数据类型和输入格式)。

澳门新萄京 10

3、点击保存按钮(或者ctrl+s)-》刷新表-》再次打开表查看结果。

澳门新萄京 11

使用T-SQL脚本添加外键约束

使用T-SQL脚本添加DEFAULT约束

发表评论

电子邮件地址不会被公开。 必填项已用*标注