文档章节

sqlserver2005创建唯一约束的方法

星痕2018
 星痕2018
发布于 2013/02/22 09:08
字数 997
阅读 53
收藏 0
对于一个表中非主键列的指定列,唯一(UNIQUE 约束|:强制非主键上的实体完整性的约束。UNIQUE 约束确保未输入重复值,并创建一个索引以增强性能。)约束确保不会输入重复的值。例如,在 employee 表中 emp_id 列是主键,可以定义一个唯一约束来要求表中社会安全号码(ssn) 列的项是唯一的。在数据库关系图中,可以使用"索引/键"属性页创建、修改或删除唯一约束。

1、创建唯一约束
创建唯一约束来确保不参与主键的特定列的值不重复。尽管唯一约束和主键都强制唯一性,但在下列情况下,应该为表附加唯一约束以取代主键约束:
如果要对列或列的组合强制唯一性。可以为表附加多个唯一约束,而只能为表附加一个主键约束。
如果要对允许空值的列强制唯一性。可以为允许空值的列附加唯一约束,而只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,确保在约束列中最多有一行含有空值。

创建唯一约束

I、在数据库关系图中右击将包含约束的表,然后从快捷菜单中选择"属性"命令。 -或- 为将包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。
II、选择"索引/键"选项卡。
III、选择"新建"命令。系统分配的名称出现在"索引名"框中。
IV、在"列名"下展开列的列表,选择要将约束附加到的列。若要将约束附加到多个列,在后续行中选择其它的列。
V、选择"创建 UNIQUE"复选框。
VI、选择"约束"选项。

当保存表或关系图时,唯一约束即创建在数据库中。

如果使用的是 SQL Server,可以控制键值的排序次序以及当存在重复键时所采取的操作。为此,应创建唯一索引取代唯一约束。


2、修改唯一约束
当要更改约束附加到的列、更改约束名称或设置附加属性时,修改唯一约束。

修改唯一约束
I、在数据库关系图中右击包含约束的表,然后从快捷菜单中选择"属性"命令。-或-为包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。
II、选择"索引/键"选项卡。
III、从"选定的索引"列表中选择要更改的约束。
IV、完成下表中的操作:

当保存表或关系图时,约束即在数据库内被更新。


3、删除唯一约束
当要删除对包含在约束表达式中的列或列组合中输入值的唯一性要求时,删除唯一约束。

删除唯一约束
I、在数据库关系图中,右击包含约束列的表,然后从快捷菜单中选择"索引/键"命令。 -或- 为包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"索引/键"命令。
II、从"选定的索引"列表中选择唯一约束。
III、选择"删除"按钮。

注意 选择"删除"按钮将导致一个无法撤消的操作,而且不保存对数据库关系图所做的所有其它更改。若要撤消该操作,不保存更改即关闭当前的数据库关系图或表设计器窗口以及所有其它打开的数据库关系图和表设计器窗口。

当保存表或关系图时,约束即从数据库中被删除。


本文转载自:

星痕2018
粉丝 10
博文 68
码字总数 16428
作品 0
石家庄
程序员
私信 提问
安装SQLServer2005 Management Studio报错怎么办

遇到的问题是:安装SQLServer2005_SSMSEE.msi错误29506 猜测:原因可能是windows7的系统保护机制 解决方法: 1.用记事本创建一个cmd格式的文件。 2.里面写上命令msiexec /i F:aSQLServer2005...

HappyBKs
2013/08/27
0
0
sql server express 2005下载地址

中文版下载地址:http://download.microsoft.com/download/C/E/6/CE626F95-EBD3-4AB8-AA35-C1BFAF98B7D5/SQLEXPR32_CHS.EXE 64位:ed2k://|file|cnsqlserver2005expresseditionservicepack4x......

暗之幻影
2016/12/21
26
0
SQLSERVER2005 EXPRESS部分特性小结

最近研究了一下SQLSERVER数据库技术,现拿出来跟大伙分享,首先给出T-SQL脚本。 建立一张测试表: CREATE TABLE TestTable ( Column1 varchar(1), Column2 int ) 加入一些测试数据: INSERT...

彭博
2012/03/09
0
0
解决SQL SERVER 2008数据库表中修改字段后不能保存

之前更新数据库从SQLServer2005升级至SQLServer2008,使用体验感觉更好了。 进无意中需要修改数据表中一个字段,结果提示:必须重新建表?我很纳闷这还是第一次遇到;修改表字段直接修改就可...

Nori
2016/05/24
35
0
回复老大的留言,字数超过了,只能用邮件了

我的方法确实有问题。我用的是sqlserver2005 需要将一条记录先出入第一张表后,然后通过查询第一张表的记录,按插入时间降序排列得到一个ID号,再引用这个ID,构造一个完整的记录,将其插入到...

浪漫的菜鸟
2011/06/09
179
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 如果人生有机会 carl+z

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :How I wish I could choose between Heaven and Hell. How I wish I would save my soul. #今日歌曲推荐# 《Tears And Rain》- J...

小小编辑
37分钟前
137
4
一步步教你怎么用python写贪吃蛇游戏

目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)...

上海小胖
56分钟前
1
0
NIO基于长度域的报文在Netty下的解码

1, 先复习一下粘包/拆包 1.1, 粘包/拆包的含义 TCP是个“流”协议, 并不了解上层业务数据的具体含义, 它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP...

老菜鸟0217
今天
8
0
从零开始搭建spring-cloud(2) ----ribbon

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 其实我们已经在上...

Vincent-Duan
今天
25
0
get和post的区别?

doGet:路径传参。效率高,安全性差(get的传送数据量有限制,不能大于2Kb) doPOST:实体传参。效率低,安全性好 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Pos...

花无谢
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部