1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表
约束条件分为以下几种:
1)非空约束,使用NOT NULL关键字;
2)默认值约束,使用DEFAULT关键字;
3)检查约束,使用CHECK关键字;
4)唯一约束,使用UNIQUE关键字;
5)主键约束,使用PRIMARY KEY关键字;
6)外键约束,使用FOREIGN KEY关键字。
约束是确保数据的完整性,从而阻止不希望插入的数据被录入。
以下使用一段SQL代码进行演示:
USE PersonInfo --使用PersonInfo数据库
GO IF EXISTS (SELECT * FROM sys.tables WHERE [name] = 'Employee ') --如果存在Employee这张表
DROP TABLE Employee --则删除
GO IF EXISTS(SELECT * FROM sys.tables WHERE [name] = 'Person') --如果存在Person这张表
DROP TABLE Person --则删除
GO CREATE TABLE Person --创建Person(人物)表
(
--索引
PersonID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_PersonID PRIMARY KEY,-- 创建一个整型、自增为1、标识种子为1、不允许为空、约束条件为主键约束的列PersonID
--名字
Name nvarchar(20) NOT NULL, --创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Name
--年龄
Age int NOT NULL CONSTRAINT CK_Age CHECK (Age >= 18 AND Age<=55) ,--创建一个整型、约束条件为检查约束的列Age
--性别
Gender bit NOT NULL CONSTRAINT DF_Gender DEFAULT(1) , --创建一个类型为bit、默认值为1(True)的列Gender
--身份信息
[Identity] nchar(18) NOT NULL CONSTRAINT CK_Identity CHECK(LEN([Identity])=18)
CONSTRAINT UQ_Identity UNIQUE
--创建一个非Unicode非固定长度(最多存储18个非Unicode字符)的、约束条件为检查约束的列Identity
)
GO CREATE TABLE Employee --创建Employee(雇员)表
(
--索引
EmployeeID int IDENTITY(1,1001) NOT NULL CONSTRAINT PK_ID PRIMARY KEY, -- 创建一个整型、自增为1、标识种子为1001、不允许为空、约束条件为主键约束的列EmployeeID
--人物索引
PersonID int NOT NULL CONSTRAINT FK_PersonID FOREIGN KEY REFERENCES Person(PersonID),
--职位
Post nvarchar(20) NOT NULL,--创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Post
--入职时间
EntryTime datetime CONSTRAINT DF_EntryTime DEFAULT getdate() --创建一个类型为datetime、默认值为取服务器时间的列EntryTime
)
GO
结果:

1 - SQL Server 2008 之 使用SQL语句创建具有约束条件的表的更多相关文章
- SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法
不是很理解为什么在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你.而且我遇到的情况是居然有的时候阻止你,有的时候不阻止你,摸不到头脑. ...
- 如何转换SQL Server 2008数据库到SQL Server 2005
背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...
- 【转】【SQLServer】SQL Server 2008“阻止保存要求重新创建表的更改”
不是很理解为什么在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你.而且我遇到的情况是居然有的时候阻止你,有的时候不阻止你,摸不到头脑. ...
- 安装sql server 2008 提示错误 SQL Server 2005 Express 工具。 失败
安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 ...
- SQL Server 2008 r2 中 SQL语句提示“对象名无效”,但可执行
[问题描述]在使用 SQL Server 2008 r2 时,有时在完成SQL书写后,会提示“对象名无效”,而SQL语句可正常执行. [原因]缓存相关. [解决方法]ctrl+shift+R 刷新下, ...
- SQL Server 2008 r2 输入SQL语句不能自动提示的解决办法
先利用“配置工具-SQL Server 配置管理器”关闭所有MSSQLSERVER服务,利用SQL Server Installation Center,进入Maintenance,选择Repair, ...
- 安装Sql server 2008时出现sql server 2005 express tools failed 怎么办?
提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 SQL Server 2005 Express 工具.若 ...
- SQL : 在SQL Server 2008(Or Express)中如何Open并编辑数据表【转】
来源:http://www.cnblogs.com/wsdj-ITtech/archive/2011/04/28/2031601.html 通常在SQL Server 2005中,我们可以通过SQL ...
- 【转载】SQL Server 2008 r2 中 SQL语句中单引号转义
sql server有两个转义符. 默认情况下, 单引号'是字符串的边界符, 如果在字符串中包含单引号', 则必须使用两个单引号', 第1个单引号'就是转义符.
- sql server 2008 在与 SQL Server 提示建立连接时出现与网络相关的或特定于实例的错误
原文地址:http://zhidao.baidu.com/link?url=Ndav32DO9zL5XnltqoqlhvKHbJv_n3Zwihhw4cwF9ffNq8hb8z7h7n3vJVfoeW ...
随机推荐
- jq总结
总述 jQuery 框架提供了很多方法,但大致上可以分为3 大类: 获取jQuery 对象的方法 在jQuery 对象间跳转的方法 获取jQuery 对象后调用的方法 获取 jQuery 对象 是怎样 ...
- 大话设计模式之策略模式(strategy)
策略模式:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响使用算法的用户. 针对商城收银模式,打折,返现促销等的例子: 打折还是促销其实都是一些算法,可以用工厂模式来 ...
- javascript学习代码
点击改变p和div元素: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- bzoj 2741: 【FOTILE模拟赛】L 分塊+可持久化trie
2741: [FOTILE模拟赛]L Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1116 Solved: 292[Submit][Status] ...
- Java简单购物车设计
还是存在一些问题(比如clear函数没效果.乱码,单独测试也没,确实找不到问题),路过的给解决下... 第一部分 会话控制 会话跟踪: 使用隐藏表单字段 URL重写,实际就是直 ...
- Sed&awk笔记之awk篇
http://blog.csdn.net/a81895898/article/details/8482333 Awk是什么 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但 ...
- 【转】不同VLAN之间相互通信及VTP、STP、EtherChannel概念
厘清最后一个概念. 转了网上两个相关帖子: http://www.net130.com/CMS/Pub/Tech/tech_zh/2009_03_12_97386_3.htm http://blog. ...
- android——彻底关闭——应用程序
最近学习做android的游戏开发时候,发现一个关于android退出时不能彻底关闭的问题,比如:一个程序里new 出了N多个Thread,这样在退出程序的可能不能完全关闭,最后发现,只用finish ...
- [cocos2d] 利用texture atlases生成动画
texturepacker可以方便地制作纹理贴图集(Texture Atlases),而且可以免费试用.(可在官网申请免费liscence) //利用软件将5帧png贴图生成1张大的png贴图和pli ...
- 自己记录java环境搭建之-maven
简述: 现需要在Eclipse中配置Maven插件,同时安装maven应用,配置Maven环境变量,建立Maven管理的工程,并用Maven导入Gson包, 编写简易Json输出程序 步骤: 1. 首 ...