mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

当前位置: mg4377娱乐娱城官网 > mg > 正文

SQLServer约束介绍

时间:2019-07-14 18:52来源:mg
使用SSMS数据库管理工科具修改CHECK约束 1、张开数据库,选择数据表-》右键点击-》选取设计(或然进行约束,选取约束,右键点击,接纳修改,前边步骤一样)。 2、接纳要修改的多寡列

使用SSMS数据库管理工科具修改CHECK约束

1、张开数据库,选择数据表-》右键点击-》选取设计(或然进行约束,选取约束,右键点击,接纳修改,前边步骤一样)。

图片 1

图片 2

2、接纳要修改的多寡列-》右键点击-》选拔CHECK约束。

图片 3

3、在CHECK约束弹出框中-》选用要修改的束缚-》输入约束表明式-》输入约束名和平条目款项束描述-》选取表设计器准绳-》点击关闭。

图片 4

 4、点击保存开关(或许ctrl s)-》刷新表查看修改结果。

图片 5

动用SSMS数据库管理工科具修改DEFAULT约束

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

图片 6

2、在表设计器窗口-》选中要修改的数额列-》在列属性中找到暗许值绑定-》举行修改。

图片 7

3、点击保存(恐怕ctrl s)-》关闭表设计器-》刷新表-》重新张开表设计器查看。

图片 8

一、约束的归类

  在SQLServer中,有3种不相同系列的羁绊。

  1、实体约束

    实体约束是有关行的,例如某一行出现的值就分裂意出现在其余行,比方主键。

  2、域约束

    域约束是有关列的,对于具备行,某一列有那个约束,比方CHECK约束。

  3、参照完整性约束

    假如某列的值必须与其余列的值异常,那就象征必要四个参照完整性约束,举个例子外键。

自律定义

对于数据库来讲,基本表的完整性约束分为列级约束原则和表级约束原则:

列级约束原则

       列级约束标准是对某两个特定列的束缚,包罗在列定义中,能够一向跟在该列的其他概念之后,用空格分隔,不用钦命列名。

表级约束原则

       表级约束标准与列定义互相独立,不富含在列定义中,常常用于对三个或多个以上的列一同开始展览封锁。

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

CHECK约束修改法规必须首先删除现成的CHECK封锁,然后使用新定义再次成立,技能动用Transact-SQL修改CHECK约束。

语法:

--修改check约束
SQLServer约束介绍。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

图片 9

图片 10

利用T-SQL脚本修改DEFAULT约束

DEFAULT约束修改法则必须首先删除现成的DEFAULT约束,然后使用新定义再一次创建,能力选拔Transact-SQL修改DEFAULT约束。

语法:

--使用数据库
use 数据库名;
go
--推断要开创的封锁是还是不是已存在
if exists(select * from sysobjects where name=约束名)
alter table 表名 drop constraint 约束名;
go
--增多暗中同意值约束
alter table 表名 add constraint 约束名 default 约束值 for 列名;
go

示例:

--使用数据库
use testss;
go
--判断要开创的牢笼是还是不是已存在
if exists(select * from sysobjects where name='default1')
alter table test1 drop constraint default1;
go
--增多暗许值约束
alter table test1 add constraint default2 default 18 for age;
go

 图片 11

图片 12

二、约束命名

  在读书约束此前,首先来明白下为约束命名要求当心哪些地点。

  SQLServer在我们不提供名称时,会自行创制名称,不过由系统活动创设的称号实际不是特地有用。

  比方,系统生成的主键名称也许是如此的:PK_Employees_145C0A3F。 

  PK代表主键(primary key),Employees代表在Employees表中,而剩余的“145C0A3F”部分是为着保险独一性而随意生成的值。唯有经过脚本制造才会获得这种值,假若是透过Managerment Studio创制表,那么就间接是PK_Employees。

  对于系统自动生成的Check约束名称如:CK_Customers_22AA2996。CK代表那是叁个Check约束,Customers代表是在Customers表中,后边的22AA2996依然多个随机数。假设一个表中有四个Check约束,则命名恐怕如下:

  CK_Customers_22AA2996

  CK_Customers_25869641

  CK_Customers_267ABA7A

  假诺您须求修改这一个约束个中的二个,那么你很难分辨那一个约束到底是哪二个。

  因而,为了能够一眼看上去就知晓这一个约束是用来干什么的,我们应有使用一种简单明了的短语来进行命名。

  举例要保管某一列电话号码格式精确的自律,大家得以行义务名CK_Customers_PhoneNo那样的短语来命名。

  综上说述命名要形成以下几点:

  1、一致性

  2、老妪能解

  3、满足以上七个规格的状态下简化名称。

封锁介绍

在数据库管理体系中,保障数据库中的数据完整性是老大重大的。所谓数据完整性,正是指存款和储蓄在数据库中数据的一致性和科学。约束定义关于列中允许值的法规,是强制完整性的标准机制。使用约束优先于选拔触发器、法规和私下认可值。查询优化器也利用约束定义生成高质量的询问实施计划。

数据完整性分类

在SQL Server中,依照数据完全新章程所效劳的数据库对象和范围不相同,能够将数据完整性分为以下两种:

实业完整性

实业完整性简单来讲,正是将表中的每一行看作三个实体。实体完整性要求表的标识符列或主键的完整性。能够因而确立独一索引、PQashqaiIMA哈弗Y KEY约束、UNIQUE约束,以及列的IDENTITY属性来试行实体完整性。

域完整性

域完整性是指给定列的输入有效性。供给表中钦命列的数额颇具无可争论的数据类型、格式和立竿见影的多少范围。强制域有效性的办法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和法则)或或然值的限制。域完整性通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和准则来贯彻。

援用完整性

援引完整性又称参照完整性。援引完整性维持被参照表和参照表之间的多少一致性,它经过主键(P兰德酷路泽IMA奔驰M级Y KEY)约束和外键(FOREIGN KEY)约束来促成。引用完整性确认保证键值在富有表中一致。那样的一致性供给不能够援用不设有的值,假若键值改动了,那么在全部数据库中,对该键值的保有援引要开始展览一样的更换。在被参照表中,当其主键值被别的表所参照时,该行不能够被删去也不允许改换。在参照他事他说加以考察表中,不容许参照空中楼阁的主键值。

CHECK约束修改优劣势

优点:

1、修改数据库CHECK约束能够保险数据的标准性和完整性。

缺点:

1:修改约束的表设计器使用法规时,恐怕会唤起原有数据与约束的抵触。

 

总结

1、每一种字段只可以有叁个暗许约束。
2、要是暗中同意约束设置的值凌驾字段所允许的尺寸,则截取到字段允许长度。
3、无法踏向到含有IDENTITY属性可能TIMESTAMP的字段上。
4、如若字段的数据类型为用户自定义类型,并且已有暗中认可值绑定在此数据类型上,则不容许再一次利用默许值。

 

三、键约束

自律分类

SQLServer中有多种约束类型,分别是 PRAV4IMAPRADOY KEY约束、FOREIGN KEY约束、UNIQUE约束、DEFAULT约束、和CHECK约束。查看也许创设约束都要采取到 Microsoft SQL Server Managment Studio。

编辑:mg 本文来源:SQLServer约束介绍

关键词: SQLSERVER