[数据库]SQL Server 2008 如何查看与创建约束

SQL Server中有五种约束类型,分别是 PRIMARY KEY约束、FOREIGN KEY约束、UNIQUE约束、DEFAULT约束、和CHECK约束。查看或者创建约束都要使用到 Microsoft SQL Server Managment Studio。

1. PRIMARY KEY约束

在表中常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key)。一个表只能有一个主键,而且主键约束中的列不能为空值。

查看PRIMARY KEY约束可以在object explorer中依次展开Databases –> 选择你要查看的数据库(在我的例子中是testdatabase) –> Tables –> 你要查看的表(在我的例子中是company)-> Columns

如上图所示,Primary Key 有一把金色的小钥匙。companyid 即为company表的primary key。

创建PRIMARY KEY约束可以右键点击表,然后选择Design,打开表设计器

选中column,点击上面的金色小钥匙,来创建Primary Key。

也可以右键点击column,然后选择Set Primary Key。

2. FOREIGN KEY约束

外键(Foreign Key)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的。创建约束的顺序是先定义主表的主键,再对从表定义外键约束。

查看FOREIGN KEY约束,展开Columns,可以看到灰色的小钥匙为Foreign Key;展开Keys,可以看到Foreign Key约束的名字为FK_contact_company。

在表设计器中,也可以点击上面的Relationships按钮,这样就可以查看到所有的Foreign Key约束

上面的例子可以看到contact 表的companyid为外键,company 表的companyid为主键。

下面来演示一下如何创建的该Foreign Key约束。

同样是点击完Relationships按钮之后,在弹出的对话框中选择Add

然后点击下面的红色圆圈内的按钮:

按下图中那样设置主表、主键和从表、外键

然后点击 OK,不要忘记保存你的设计。

3. UNIQUE约束

UNIQUE约束用于确保表中的两个数据行在非主键中没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,但UNIQUE约束用于非主键的一列或多列组合,且一个表可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义多列组合。

还以company table为例,假设我们要约束company name为唯一的,点击Manage Indexes and Keys

然后点击Add来添加Unique约束

选择column为companyname, Is Unique为Yes。

关闭并保存你的设计,这样一个Unique约束就创建好了。

4. DEFAULT约束

若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。

以contact表为例,在表设计器中,为性别(sex)列填写属性默认值 (‘M’)。

5. CHECK约束

CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性。一个列的输入内容必须满足CHECK约束的条件,否则数据无法正常输入。

还以contact表为例, 我们要限制sex列的值只能为 ´M´ 或者 ´F´。在表设计器中点击Manage Check Constraints

点击Add添加新的constraint

点击红圈内的按钮,填写表达式。我们例子中用的表达式是 SEX=‘M‘ OR SEX=‘F‘

关闭并保存设计。向contact表中插入一行数据,如果sex列的值不为´M´ 或 ´F´, 插入就会报错。

时间: 2024-08-24 18:07:49

[数据库]SQL Server 2008 如何查看与创建约束的相关文章

sql server 2008 安装过程与创建建sql server登录用户

1.sql server 下载安装包路径:http://pan.baidu.com/s/1qWuzddq 2.安装过程图解教程 ,参照网址:http://jingyan.baidu.com/album/948f592434b407d80ef5f97d.html?picindex=13 秘钥: SQL Server 2008 序列号:Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYBEnterprise: JD8Y6-HQG69-P9H84-XDTPG-34MBB 3

WPF学习(一):第一个WPF程序(包含数据库sql server 2008)

既然WPF是当下最高级的windows平台GUI技术,为了方便的写点儿小程序,学习一下还是必要的. 首先先找个教程一步一步做,于是就百度到了这个WPF入门教程系列(一).貌似这个教程只有第一期啊,不管这个,先做就是了. 一开始想安装vs2013社区版,无奈电脑是盗版的WIN7,非sp1,更新sp1也不成功,就装了vs2010,还能用吧. 下面就开始了. 首先打开vs,创建c#程序,选择WPF,这都不用多说.按照WPF入门教程系列(一)做就可以了,直到 WPF后台逻辑代码编写 这一步.由于没有学过

sql server 2008 r2 报表生成器 创建报表

一.在sharepoint报表网站中,新建报表,新建数据集,发布(选择发布文件夹[dataset],方便管理): 二. 在sharepoint报表网站中,新建报表,使用插入表向导,插入一行,editorrromname .注意行分组详细信息中改为“详细信息”. 三.报表生成器中的参数设置,例如按照editorroomname,先创建数据集editorroomname: select discount(editorroomname) from v_theme_price where editorr

SQL Server 2008中查看锁信息

;with tran_locks as(select resource_type,db_name(resource_database_id) as db_name,resource_description   ,object_name(resource_associated_entity_id,resource_database_id) as object_name,request_mode,request_type,request_status,request_session_id   fro

从远程服务器数据库中同步数据到本地数据库 sql server 2008 开启分布

控制面板\所有控制面板项\管理工具 打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键.在MSDTC选项卡中,点击“安全配置”按钮. 在安全配置窗口中做如下设置: l         选中“网络DTC访问” l         在客户端管理中选中“允许远程客户端”“允许远程管理” l         在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证” l         保证DTC登陆账户为:NT   Authority\NetworkService

SQL Server 2008 R2 主从数据库同步(日志传送的方式 Log Shipping)

注意事项: 1.为主从服务器添加新的系统用户并设置好密码: 2.主从服务器都开启SQL Server的代理服务,并设置为开机自动启动 3.在数据库配置管理其中把SQL Server服务和SQL Server的代理服务的登录信息设置为上边添加的系统用户,并设置好密码.(记得主从服务器都需要这样设置,不要忘记了,我都是忘记了,怎么弄都不行) 4.用户共享的文件目录,共享访问时需要密码,记得要先访问共享并记住凭证,不然会提示失败. 5.SQL Server的备份,是主库的数据库服务器自动备份数据库,生

.NET Core EF框架使用SQL server 2008数据库分页问题:Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement

一. 问题 最近.Net Core程序部署到服务器,采用EF6.本地数据库是SQL server 2016,服务器数据库安装的是SQL server 2008 R2,在用到分页查询时报错如下: { "Depth": 0, "ClassName": "", "Message": "Incorrect syntax near 'OFFSET'.\r\nInvalid usage of the option NEXT in

解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01

操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasource导入Access数据的时候遇到问题了,Oledb 4.0已经不被支持,以下是遇到的若干错误提示: 因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询. 无法创建链接服务器 "(null)" 的 OLE DB 访

SQL Server 2008数据库创建用户只读权限的两种方式

在SQL Server 2008中,为了保护数据库的安全,需要给不同的使用者开通不同的访问用户,那么如何简单的控制用户的权限呢?下面我们就创建一个只读用户,给大家学习使用. 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执行即可 sqlserver命令方式增加登录名.用户名及赋予相应权限 sp_addlogin 'test','test','DB'  >>登录名.密码.登录的数据库 sp_grantdbaccess 'test'  >>将数据库用户加入到当前数据库 gran