当前位置: 首页 > 编程日记 > 正文

SQLServer之DEFAULT约束

原文: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的默认值,占用了更多的存储空间。

相关文章:

tmux/screen里面如何用鼠标滚轮来卷动窗口内容

tmux里面用鼠标滚轮来卷动窗口内容在 tmux里面,因为每个窗口(tmux window)的历史内容已经被tmux接管了,所以原来console/terminal提供的ShiftPgUp/PgDn所显示的内容并不是当前窗口的历史内容,所以要用C-b [ 进入copy-mode,然后才能…

图像空间变换--imtransform

转自:http://juyishaanxi.blog.163.com/blog/static/602733002010522105439617/(非原处)空间几何变换将(w,z)坐标系上的图像变换为(x,y)坐标系上的图像,可以表示为: (x,y) T{(w,z) 比如: (x,y) T{(w,z)} (w/2, z/2) 仿射变…

谷歌用1.2万个模型“推翻”现有无监督研究成果!斩获ICML 2019最佳论文

作者 | 夕颜、Just出品 | AI科技大本营(ID:rgznai100)6 月 11 日,在美国加州长滩举行的 ICML 公布了 2019 年最佳论文奖,来自苏黎世联邦理工大学、谷歌大脑等的团队和英国剑桥大学团队摘得最佳论文奖项,此外,大会还公布了 7 篇获最…

实战:掌握PyTorch图片分类的简明教程 | 附完整代码

作者 | 小宋是呢转载自CSDN博客1.引文深度学习的比赛中,图片分类是很常见的比赛,同时也是很难取得特别高名次的比赛,因为图片分类已经被大家研究的很透彻,一些开源的网络很容易取得高分。如果大家还掌握不了使用开源的网络进行训练…

python group()

正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a "123abc456" print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体 print re.sea…

图像配准的方法

转自:http://blog.sina.com.cn/s/blog_4b9b714a0100d5k5.html 图像配准的方法 1 基于特征的图像配准 基于特征的图像配准首先提取图像信息的特征,然后以这些特征为模型进行配准。特征提取的结果是一含有特征的表和对图像的描述,每个特征由…

微软发布Visual Studio 2017 15.8

2019独角兽企业重金招聘Python工程师标准>>> 对于C#/VB/C项目,在Git分支检出和分支切换操作后不再需要重新加载解决方案,这加快了操作的完成。15.8支持新推出的F# 4.5,这无疑将会受到F#开发人员的欢迎。此外,用于F#项目…

推荐系统产品与算法概述 | 深度

作者丨gongyouliu转载自大数据与人工智能(ID:gh_b8b5b02c348b)作者在《推荐系统的工程实现》(点击蓝字可回顾)这篇文章的第五部分“推荐系统范式”中讲到工业级推荐系统有非个性化范式、完全个性化范式、群组个性化范式、标的物关…

【iOS-cocos2d-X 游戏开发之十六】Cocos2dx编译后的Android自动使用(-hd)高清图设置自适应屏幕...

本篇主要介绍Cocos2dx项目开发过程中或者说项目务必遇到的一些知识点(ps.貌似Himi博客写的都是务必的 :tx: Himi认为写别人没写的才更容易吸引人不是~) OK,不多说废话,第一个介绍的是修改项目配置让你的Android项目支…

matlab图像处理命令(一)

转自:http://blog.csdn.net/langyuewu/archive/2009/05/02/4144120.aspx(非原处) 1.applylut 功能: 在二进制图像中利用lookup表进行边沿操作. 语法: A applylut(BW,lut) 举例 lut makelut(sum(x(:)) 4,2); BW1 imread(text.tif); BW2 applylut(BW1,lut); imsh…

MYSQL 查询数据排序数据和分组数据

在mysql查询过程中,可以对数据进行过滤,也可以对数据进行排序,可以对数据分组,下面分别讲述排序数据和分组数据例子。1,数据的排序 使用 ORDER BYselect * from where id10 order by id (正序,倒序)正序 AS…

Oracle RAC系列之:利用srvctl管理RAC数据库

srvctl即Server Control,是Oracle提供的一个命令行工具,用以用于管理Oracle的RAC环境。srvctl在Oracle 9i中被引入,Oracle10g、11g对其功能进行了很大的增强和改进。下面介绍下此命令的简单用法。 一、 查看实例状态(srvctl statu…

matlab图像处理命令(二)

转自:http://blog.163.com/crazyzcs126/blog/static/1297420502010229104452729/ (非原处) 图像增强 1. 直方图均衡化的 Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明&#x…

10万人的1000万张图像,微软悄然删除最大公开人脸数据集

作者 | 神经小姐姐转载自HyperAI超神经(ID:HyperAI)前几日,微软静悄悄地删除了一个公开的名人图片数据集。这个本为世界上最大的公开人脸识别数据集,现在已经不能通过微软的渠道访问。这个数据集包含了 10 万张名人面部…

密码学原理学习笔记

攻击的类型: 唯密文攻击(COA):攻击者只知道密文 已知明文攻击(KPA):攻击者知道同一密钥下密文对应的明文。 选择明文攻击(CPA):攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文。 选择…

终于申请博客了

今天终于下定决心在51CTO博客安家了。以后要坚持不断的写博客。以此来督促自己不断的学习和总结。把自己所掌握的技术和过往经验总结出来。转载于:https://blog.51cto.com/weijishui/971044

一种二维条码图像处理流程

目前,二维条码主要分两类: (1)、堆叠式二维条码:PDF417、Code 49; (2)、矩阵式二维条码:QR Code、Maxicode、Data Matrix。 本条码类似于Maxicode,处理过程大致为: (1)、图像灰度化&#xff…

vue中 静态文件引用注意事项

(一)assets文件夹与static文件夹的区别区别一:assets文件是src下的,所以最后运行时需要进行打包,而static文件不需要打包就直接放在最终的文件中了区别二:assets中的文件在vue中的template/style下用../这种…

百度AI快车道—企业深度学习实战营,推荐系统主题专场即将开课

身处信息过载的时代,在各大门户网站上,每天会有十万左右的新闻报道产出,京东淘宝等购物平台每小时就有上百万的商品上架出售,在B站、优酷、爱奇艺、搜狐等视频网站上每秒就有几百个小时的视频上线。所有人都正在经历一场信息变革。…

SIFT特征提取算法总结

转自:http://www.jellon.cn/index.php/archives/374 一、综述 Scale-invariant feature transform(简称SIFT)是一种图像特征提取与匹配算法。SIFT算法由David.G.Lowe于1999年提出,2004年完善总结,后来Y.Ke(2004)将其描述子部分用PCA代替直方…

一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构,MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的想法很可能…

商汤科技举办病理、放疗两大MICCAI国际挑战赛,推动AI医疗落地

近日,商汤科技宣布将联合衡道病理、上海交通大学医学院附属瑞金医院、西京医院、上海市松江区中心医院举办MICCAI 2019消化道病理图像检测与分割国际挑战赛,联合医诺智能科技、浙江省肿瘤医院举办MICCAI 2019放疗规划自动结构勾画国际挑战赛,…

vue实战(1)——解决element-ui中upload组件使用多个时无法绑定对应的元素

解决element-ui中upload组件使用多个时无法绑定对应的元素 以前写的项目关于图片上传的都是单张或几张图片上传(主要是基于vue的element),图片路径都是固定写的,所以遇见过列表中多个上传图片的问题,先看下常用的形式 …

MVVM开发模式MVVM Light Toolkit中使用事件和参数传递

Light中定义了类GalaSoft.MvvmLight.Command.RelayCommand这个类继承了ICommand方法,实现了其中的方法,Action就是一个方法参数// 摘要: // A command whose sole purpose is to relay its functionality to other objects // by invoki…

harris角点检测与ncc匹配

转自:http://zixuanjinan.blog.163.com/blog/static/11543032620097510122831/ file1:-------------------------------------------------------------------------------------- function [y1,y2,r,c]harris(X)% 角点的检测,利用harris 算法% 输出的是…

CVPR 2019超全论文合集新鲜出炉!| 资源帖

整理 | 夕颜出品 | AI科技大本营(ID: rgznai100)实不相瞒,这是一个资源福利帖——CVPR 2019 接收论文超全合集!此前关于 CVPR 2019 论文和合集出过不少,但是这个可能是最全面最丰富的,链接奉上:…

ROS 用 roboware实现节点信息发送和接收

在ros下实现节点编程,实现一个节点发送消息,另一个节点接收。实现方式有多种,可以直接在命令窗口创建工作空间包以及节点,用catkin_make进行编译,添加.bash路径,然后执行rosrun package node_name 。这种…

javah生成JNI头文件

Administratoribm /cygdrive/z/workspace/com.example.hellojni.hellojni/src <---- 从此文件夹执行 javah *************** project root dir ******************* *** source dir *** javah -jni -classpath . com.example.hellojni.HelloJni*** package name *** ** c…

【码书】一本经典且内容全面算法书籍,学算法必备

之前推荐了好几本算法书&#xff0c;有《啊哈&#xff01;算法》&#xff0c;有《算法图解》&#xff0c;有《漫画算法》&#xff0c;也有《我的第一本算法书》&#xff0c;很多粉丝不乐意了&#xff0c;觉得我推荐了这么多算法书籍&#xff0c;竟然没有经典算法书籍《算法导论…

Ubuntu16.04.1 安装Nginx

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的&#xff0c;第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证…