原文:SQLServer之DEFAULT约束

DEFAULT约束添加规则

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

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

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

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

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

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

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

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

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

使用T-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='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

创建表时添加默认约束

首先判断表是否选在,如果存在则先删除表再添加,如果不存在则直接添加。

语法:

--创建新表时添加默认约束
--数据库声明
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

DEFAULT约束优缺点

优点:

1、使用默认值可以减少代码量,新增数据时可以不用写新增默认值列,执行新增操作时时默认填充。

2、较有利于进行统计和分析,以及方便程序逻辑操作。

缺点:

1、使用不为NULL的默认值,占用了更多的存储空间。

SQLServer之DEFAULT约束相关推荐

  1. mysql种default约束的语句_sql语句大全之SQL DEFAULT 约束

    SQL DEFAULT约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新纪录. SQL DEFAULT Constraint on CREATE TA ...

  2. Constraint4:default约束

    Default约束的作用是在insert语句执行时,如果未显式给指定的column赋值,那么使用默认值给column赋值:如果在Insert命令中显式为指定的Column赋值,那么将插入显式值.每一列 ...

  3. mysql+默认值+default_十六、MySQL 中数据类型的默认值 - default 约束-搜云库

    MySQL 中,所有的数据类型,都可以显式或隐式的拥有默认值. 我们可以使用 DEFAULT 约束显式的为列指定一个默认值.比如 CREATE TABLE t1 ( i INT DEFAULT -1, ...

  4. 在SQL中使用DEFAULT约束

    DEFAULT constraint is used to insert default value into a column on a table and if no any value is s ...

  5. SQL DEFAULT 约束

    SQL DEFAULT 约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新记录. CREATE TABLE 时的 SQL DEFAULT 约束 下面的 ...

  6. SQL DEFAULT约束

    SQL DEFAULT约束 一. 说明 本文主要讲SQL 中的DEFAULT约束(插入默认值) 二. 所用工具 SQL 数据库 三. 内容 1.DEFAULT约束说明 DEFAULT 约束用于向列中插 ...

  7. SQLServer之删除约束

    使用SSMS数据库管理工具删除约束 1.连接数据库,选择数据表->展开键或者约束->选择要删除的约束->右键点击->选择删除. 2.在删除对象弹出框中->点击确定. 3. ...

  8. SQLServer之CHECK约束

    CHECK约束添加规则 1.CHECK 约束用于限制列中的值的范围. 2.Check约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围,在列中更新数据时,所要输入的内容必须满足Ch ...

  9. SQLServer约束介绍

    约束定义 对于数据库来说,基本表的完整性约束分为列级约束条件和表级约束条件: 列级约束条件 列级约束条件是对某一个特定列的约束,包含在列定义中,可以直接跟在该列的其他定义之后,用空格分隔,不用指定列名 ...

最新文章

  1. layui中监听select下拉框改变事件
  2. 博客作业02---线性表
  3. Leetcode5633. 计算力扣银行的钱[C++题解]:模拟简单
  4. HDU 1430 魔板(康托展开+BFS+预处理)
  5. Releasing Contexts 释放上下文
  6. 年薪80万难求一名AI程序员,技术革新世界已到来!
  7. 关于本次课堂代码的练习
  8. 【PostgreSQL-9.6.3】进程及体系结构
  9. bzoj 3495: PA2010 Riddle(2-SAT)
  10. 世事无常,深信服及其他
  11. 使用nexus下载资源
  12. php怎么弄钓鱼,php 最新qq钓鱼空间php源码 需要修改数据库连接 WEB(ASP,PHP,...) 247万源代码下载- www.pudn.com...
  13. 创业者该如何给员工画饼、圆饼?
  14. 【秋招面试】面试准备(一面准备)
  15. 一. Scala安装与环境配置
  16. 思维导图软件Mindmanager2018下载
  17. 笔记本光驱改固态硬盘装系统小记
  18. 随机过程(一):泊松过程的详细理解
  19. golang官网可以打开了 go语言
  20. xmanager5链接linux配置,使用Xmanager连接CentOS 5.5

热门文章

  1. 一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现1
  2. 【Qt】使用QPalette设置按钮颜色时,不生效
  3. 【Junit】BeforeClass、Before、After、AfterClass
  4. 加班到凌晨三点,就能月薪五万了吗?
  5. mysql邮箱配置文件_SQL-数据库邮箱配置
  6. 编写一个最简单的.php,学习猿地- 说明 如果我们要编写一个简单的PHP脚本,需要学习哪些...
  7. python与vb可以互换吗_vb能配合python写程序么?
  8. Java项目:课程资源管理+在线考试平台(java+SSH+mysql+maven+tomcat)
  9. Java项目:房屋租赁系统设计和实现(java+ssm+mysql+spring+jsp)
  10. 一些有趣的题目(java)持续更新