澳门金莎娱乐手机版 数据库 请输入对象/函数的名目况且永不用引号将名称括起来,2、选用要改革的数量列-》右键点击-》选拔CHECK约束澳门金莎娱乐手机版

请输入对象/函数的名目况且永不用引号将名称括起来,2、选用要改革的数量列-》右键点击-》选拔CHECK约束澳门金莎娱乐手机版



使用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、若要输入对象/函数,请输入对象/函数的称号何况毫不用引号将名称括起来。

动用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

CHECK约束改正优短处

优点:

1、改善数据库CHECK节制能够有限帮助数据的规范性和完整性。

缺点:

1:校勘节制的表设计器使用准绳时,或然会挑起原有数据与约束的冲突。

 

行使T-SQL脚本加多CHECK节制

使用T-SQL脚本增添DEFAULT节制

当表结构存在时

增添CHECK节制时首先校验节制是不是已存在,就算存在应该是先删除再增多,假使不设有则平素抬高。

语法:

— 增多一个默许限制
use 数据库名;
go

if exists(select * from sysobjects where
name=约束名)
alter table 表名 drop constraint
约束名;
go

alter table 表名 add constraint 节制名
check(节制法规),constraint 限定名 check(节制准绳);
go

示例:

— 加多五个暗中认可限制
use testss;
go

if exists(select * from sysobjects where
name=’check1′)
alter table test1 drop constraint
check1;
go

alter table test1 add constraint check1
check(height>=170 and height<=175);
go

 澳门金莎娱乐手机版 16

澳门金莎娱乐手机版 17

当表结构已存在时

率先推断表中是或不是存在暗中同意节制,如若存在则先删除默许限制再增加,假设不设有则直接助长。

语法:

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=’defalut_height’)
alter table [testss].[dbo].[test1]
drop constraint defalut_height;
go
–给钦赐列增添暗中同意约束
alter table [testss].[dbo].[test1]
add constraint defalut_height default(160) for height;
go

澳门金莎娱乐手机版 18

澳门金莎娱乐手机版 19

当表结构荒诞不经时

如若表结构荒诞不经,能够一直抬高度约束,能够同一时间加上二个要么三个节制。

语法:

–借使表结构不设有的时候增添check约束
use 数据库名;
go
–借使已存在表则删除
if exists(select * from sysobjects where
name=表名 and xtype=’U’)
drop table 表名;
go
–创建表
create table 表名
(
–字段注解
列名 int identity(1,1) not null,
列名 nvarchar(50) null,
列名 nvarchar(50) null constraint 约束名
check(节制准则),
列名 nvarchar(50) null,
列名 int,
列名 int constraint 约束名
check(节制规则)
primary key clustered(列名 asc)
with(ignore_dup_key=off) on [primary], –主键索引注明
)on [primary]

–字段注释注解
exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列描述’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列描述’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列描述’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列描述’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列描述’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

go

示例:

–倘诺表结构一纸空文时增添check限制
use testss;
go
–如若已存在表则删除
if exists(select * from sysobjects where
name=’test1′ and xtype=’U’)
drop table test1;
go
–创建表
create table test1
(
–字段证明
id int identity(1,1) not null,
name nvarchar(50) null,
sex nvarchar(50) null constraint check1
check(sex=’男’ or sex=’女’),
age nvarchar(50) null,
classid int,
height int constraint check2
check(height>=110 and height<=120)
primary key clustered(id asc)
with(ignore_dup_key=off) on [primary], –主键索引评释
)on [primary]

–字段注释注脚
exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’id主键’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’id’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’姓名’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’name’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’性别’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’sex’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’年龄’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’age’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’班级id’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’classid’;

go

 澳门金莎娱乐手机版 20

澳门金莎娱乐手机版 21

澳门金莎娱乐手机版 22

创办表时充裕暗许约束

先是决断表是还是不是选在,要是存在则先删除表再加多,假如不设有则平素抬高。

语法:

–创建新表时加多默许限定
–数据库证明
use 数据库名
go
–假如表已存在则先删除表再次创下制,假诺表一纸空文则向来开立
if exists(select * from sysobjects where
name=表名 and type =’U’)
drop table 表名;
go
–建表语法证明
create table 表名
(
–字段注解
列名 列类型 identity(1,1) not
null,
列名 列类型) null,
列名 列类型 null,
列名 列类型 null,
列名 列类型,
列名 列类型 constraint 约束名 default
默认值,
primary key clustered(列名 asc)
with(ignore_dup_key=off) on [primary] –主键索引申明
)on [primary]

–字段注释注脚
exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列说明’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列说明’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列说明’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列说明’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’列说明’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’表名’,
@level2type=N’COLUMN’,@level2name=N’列名’;

go

示例:

–创设新表时增添暗许限定
–数据库评释
use testss
go
–如果表已存在则先删除表再成立,若是表不设有则一贯开立
if exists(select * from sysobjects where
name=’test1′ and type =’U’)
drop table test1;
go
–建表语法注明
create table test1
(
–字段注解
id int identity(1,1) not null,
name nvarchar(50) null,
sex nvarchar(50) null,
age nvarchar(50) null,
classid int,
height int constraint default_he default
166,
primary key clustered(id asc)
with(ignore_dup_key=off) on [primary] –主键索引注明
)on [primary]

–字段注释注解
exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’id主键’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’id’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’姓名’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’name’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’性别’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’sex’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’年龄’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’age’;

exec sys.sp_addextendedproperty
@name=N’MS_Description’, @value=N’班级id’ ,
@level0type=N’SCHEMA’,
@level0name=N’dbo’,
@level1type=N’TABLE’,@level1name=N’test1′,
@level2type=N’COLUMN’,@level2name=N’classid’;

go

澳门金莎娱乐手机版 23

澳门金莎娱乐手机版 24

CHECK节制优劣势

优点:

1、保险列数据正式和限量,能够节制数据完整性

2、有Check约束的列能够提必要查询优化器音讯之所以晋级质量

缺点:

1、插入或许涂改时数据不切合节制准绳,无法改进成功。

DEFAULT限定优劣势

优点:

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

2、好低价开展总计和分析,以至便于程序逻辑操作。

缺点:

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

 

标签:

发表评论

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

相关文章

网站地图xml地图