SQLServer之修改CHECK约束

2019-07-13 21:29栏目:程序人生

运用SSMS数据库处理工科具修改CHECK约束

1、打开数据库,选拔数据表-》右键点击-》采纳设计(或许拓展约束,选用约束,右键点击,选用修改,前面步骤一样)。

图片 1

图片 2

2、选拔要修改的数额列-》右键点击-》选用CHECK约束。

图片 3

3、在CHECK约束弹出框中-》采取要修改的封锁-》输入约束表明式-》输入约束名和平条目束描述-》选择表设计器准则-》点击关闭。

图片 4

 4、点击保存按键(恐怕ctrl s)-》刷新表查看修改结果。

图片 5

CHECK约束增多法则

1、CHECK 约束用于限制列中的值的范围。

2、Check约束通过逻辑表明式来决断数据的得力,用来限制输入一列或多列的值的界定,在列中创新数据时,所要输入的故事情节必须满意Check约束的条件,不然将不能正确输入。

3、要是对单个列定义 CHECK 约束,那么该列只允许特定的值。

4、若是对一个表定义 CHECK 约束,那么此约束会在特定的列中对值举行界定。

DEFAULT约束加多准则

1、若在表中定义了暗许值约束,用户在插入新的数量行时,假若该行未有一些名数量,那么系统将私下认可值赋给该列,即使我们不设置默许值,系统默以为NULL。

2、如果“暗中同意值”字段中的项替换绑定的私下认可值(以不带圆括号的样式展现),则将唤起您清除对暗中认可值的绑定,并将其替换为新的暗中认可值。

3、若要输入文本字符串,请用单引号 (') 将值括起来;不要选择双引号 ("),因为双引号已保存用于带引号的标记符。

4、若要输入数值私下认可值,请输入数值而且永不用引号将值括起来。

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

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 约束的莫过于数据依然受硬件配置以及数据库和应用程序设计的限定。 表最多能够将 2伍十个别的表和列作为外键引用(传出援用)。 SQL Server 2015 (13.x) 将可在单独的表中援引的别样表和列(传入引用)的数码限制从 253 升高至 10,000。 (包容性品级至少必须为 130。)数量限制的增长带来了下列约束:

DELETE 和 UPDATE DML 操作支持胜出 253 个外键引用。 不扶助ME逍客GE 操作。

对自家举行外键引用的表仍只好进行 2五13个外键引用。

列存储索引、内部存款和储蓄器优化表和 Stretch Database 暂不帮忙开始展览超越 253 个外键援引。

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

9、假诺在 CLTucson用户定义类型的列上定义外键,则该类型的贯彻必须支持二进制排序。

10、仅当 FOREIGN KEY 约束援引的主键也定义为品种 varchar(max) 时,本领在此约束中采取项目为varchar(max) 的列。

动用T-SQL脚本修改CHECK约束

CHECK约束修改法则必须首先删除现存的CHECK封锁,然后接纳新定义再度成立,才具应用Transact-SQL修改CHECK约束。

语法:

--修改check约束
use 数据库名
go

--假如封锁存在则先删除
if exists(select * from sysobjects where name=约束名)
alter table 表名 drop constraint 约束名;
go

--加多封锁
alter table 表名
--with check --该约束是不是利用于现有数量,with check表示应用于现成数据,with nocheck代表不应用于现成数量
add constraint 约束名
check
not for replication --当复制代理在表中插入或更新数据时,禁用该约束。
(约束表达式);
go

--向表中增多新数据或更新表中幸存数据时是不是禁止使用该约束。check表示校验,nocheck表示不校验
--alter table 表名
--check
--constraint 表名;
--go

--加多check约束描述
execute sp_addextendedproperty N'MS_Description', N'约束描述', N'SCHEMA', N'dbo', N'TABLE', N'表名', N'CONSTRAINT', N'约束名';
go

示例:

--修改check约束
use testss
go

--要是封锁存在则先删除
if exists(select * from sysobjects where name='u_check2')
alter table test1 drop constraint u_check2;
go

--加多封锁
alter table test1
--with check --该约束是或不是使用于现成数量,with check代表应用于现存数据,with nocheck表示不行使于现成数量
add constraint u_check2
check
not for replication --当复制代理在表中插入或更新数据时,禁用该约束。
(height>=100 and height <=200);
go

--向表中加多新数据或更新表中存活数量时是或不是禁止使用该约束。check代表校验,nocheck代表不校验
--alter table test1
--check
--constraint u_check2;
--go

--加多check约束描述
execute sp_addextendedproperty N'MS_Description', N'修改约束', N'SCHEMA', N'dbo', N'TABLE', N'test1', N'CONSTRAINT', N'u_check2';
go

图片 6

图片 7

采取SSMS数据库管理工科具加多CHECK约束

1、连接数据库,选择数据库,选用数据表-》右键点击(大概直接点击约束,右键点击,选用丰盛约束,后边步骤一样)-》接纳设计。

图片 8

2、选用要增进约束的数目列-》右键点击-》接纳CHECK约束。

图片 9

3、在CHECK约束弹出框中式点心击加多。

图片 10

4、在CHECK约束弹出框中-》输入CHECK约束表明式-》输入CHECK约束名-》输入CHECK约束描述-》其余能够挑选私下认可。

图片 11

5、点击关闭-》点击保存开关(可能ctrl s)-》刷新表查看结果。

图片 12

选拔SSMS数据库管理工具增多DEFAULT约束

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

图片 13

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

图片 14

3、点击保存开关(可能ctrl s)-》刷新表-》再度展开表查看结果。

图片 15

利用SSMS数据库处理工科具增加外键约束

本示例演示当表结构已存在时增加外键约束,创制表时增添外键约束步骤和表结构存在时加多外键步骤一样。示例演示如下:

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

图片 16

2、在表设计窗口-》选取要增添外键的数额行-》右键点击-》采取事关。

图片 17

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

图片 18

4、加多完结后-》首先修改表和列标准。

图片 19

5、在表和列窗口中-》输入外键名-》在侧面选拔主表和事关的列-》在左边手采取从表和作为外键的列-》点击明确。

图片 20

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

图片 21

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

图片 22

图片 23

版权声明:本文由ca888发布于程序人生,转载请注明出处:SQLServer之修改CHECK约束