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
约束的莫过于数据照旧受硬件配置以及数据库和应用程序设计的范围。 表最多能够将 254个其余表和列作为外键引用(传出援引)。 SQL
Server 贰零壹陆 (13.x) 将可在单独的表中引用的别样表和列(传入引用)的数据限制从
253 升高至 10,000。 (兼容性等第至少必须为
130。)数量限制的加强带来了下列约束:

DELETE 和 UPDATE
DML 操作帮忙胜出 253 个外键引用。 不扶助ME科雷傲GE 操作。

对自己实行外键引用的表仍只可以进行 253个外键援引。

列存款和储蓄索引、内存优化表和 Stretch Database
暂不援救开始展览当先 253 个外键援引。

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

9、借使在 CL锐界用户定义类型的列上定义外键,则该类型的兑现必须援救二进制排序。

10、仅当 FOREIGN
KEY
约束引用的主键也定义为项目 varchar(max) 时,手艺在此约束中选用项目为varchar(max) 的列。

动用SSMS数据库处理工科具添加DEFAULT约束

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

4503.com 1

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

4503.com 2

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

4503.com 3

当表结构已存在时

只要要丰盛约束的表已存在外键约束,要求先删除却键约束再增添外键约束。若是不设有外键约束能够加上海外国语高校键约束。

语法:

if exists(select * from sysobjects where
name=约束名)
alter table 数据库名.[dbo].表名 drop
constraint 约束名;
alter table 数据库名.[dbo].表名 with
check add constraint 约束名 foreign key(列名)
references 数据库名.[dbo].表名(列名)

on delete cascade
on update cascade;
go

示例:

if exists(select * from sysobjects where
name=’t1_t2′)
alter table [testss].[dbo].[test1]
drop constraint t1_t2;
alter table [testss].[dbo].[test1]
with check add constraint t1_t2 foreign key(classid)
references
[testss].[dbo].[test2](id)
on delete cascade
on update cascade;
go

4503.com 4

DEFAULT约束加多准则

1、若在表中定义了默许值约束,用户在插入新的多寡行时,纵然该行没有一点名数量,那么系统将私下认可值赋给该列,如若我们不安装私下认可值,系统默感到NULL。

2、若是“暗中同意值”字段中的项替换绑定的暗中认可值(以不带圆括号的花样显得),则将唤起您清除对默许值的绑定,并将其替换为新的暗中同意值。

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

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

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

行使SSMS数据库管理工科具增多外键约束

本示例演示当表结构已存在时增加外键约束,创设表时加上外国国语高校键约束步骤和表结构存在时添加外键步骤同样。示例演示如下:

1、连接数据库,张开要增添外键的多寡表-》右键点击-》选取设计。

4503.com 5

2、在表设计窗口-》采用要增多外键的数码行-》右键点击-》选择事关。

4503.com 6

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

4503.com 7

4、增添完成后-》首先修改表和列标准。

4503.com 8

5、在表和列窗口中-》输入外键名-》在左边选用主表和涉嫌的列-》在右边手采取从表和当作外键的列-》点击确定。

4503.com 9

6、在外键关系窗口中-》可选择丰富或许不增加外键描述-》可挑选丰硕可能不增多修改恐怕去除数据时级联操作-》可选用丰裕也许不添抓实制外键约束-》可挑选丰盛或许不添压实制用于复制-》点击关闭。

4503.com 10

7、点击保存开关(ctrl+s)-》此时表会弹出警告窗口,点击是-》刷新查看外键是还是不是丰裕成功。

4503.com 11

4503.com 12

DEFAULT约束优劣势

优点:

1、使用暗许值能够减小代码量,新添多少时方可不用写新添暗许值列,实行新增添操作时时默许填充。

2、较有利开始展览总括和解析,以及福利程序逻辑操作。

缺点:

1、使用不为NULL的暗中认可值,占用了越来越多的积攒空间。