使用SSMS数据库管理工具修改UNIQUE约束

1、连接数据库,选择数据表-》右键点击-》选择设计(或者展开键,选择要修改的键,右键点击,选择修改,后面步骤相同)。

2、选择要修改的数据列-》右键点击-》选择索引/键。

3、在索引/键弹出框中-》选择要修改的唯一约束-》选择约束类型-》点击列。

4、在索引列弹出框中-》选择要约束的数据列-》选择要约束的数据列的排序规则-》点击确定。

5、在索引/键弹出框中-》输入要修改的唯一约束名称-》输入要修改的唯一约束描述-》表设计器规则可以使用系统默认-》点击关闭。

6、点击保存(或者ctrl+s)-》刷新表-》查看修改结果。

使用T-SQL脚本修改UNIQUE约束

若要使用 Transact-SQL 修改 UNIQUE 约束,必须首先删除现有的 UNIQUE 约束,然后用新定义重新创建。

语法:

--修改唯一约束
--声明数据库引用
use 数据库名;
go

--判断是否唯一约束是否存在,如果存在则删除,不存在则添加
if exists(select * from sysobjects where name=约束名)
alter table 数据库名 drop constraint 约束名;
go

--添加唯一约束
alter table 表名 
add constraint 约束名
unique
[nonclustered|clustered] --在“表设计器”下的网格中,选择“创建为群集索引”,再从下拉列表中选择“是”创建群集索引,或选择“否”创建非群集索引。 对于每个表,只允许存在一个聚集索引。 如果此表中已经存在聚集索引,则您必须首先对原始索引清除此设置。
(列名 [asc|desc])
--fillfactor:填充因子适用于底层,指定一个百分比,指示数据库引擎在索引创建或更改期间应该使每个索引页的叶级别有多满。指定的值必须是1到100之间的整数值。默认值为0。
--pad_index=on:FILLFACTOR指定的可用空间百分比将应用于索引的中间级页面。
--pad_index=off or or fillfactor is not specified:在给定中间页面上的一组键的情况下,中间级页面被填充到接近容量,为索引可以具有的最大大小的至少一行留下足够的空间。
--statistics_norecompute=on:过时的统计信息不会自动重新计算。
--statistics_norecompute=off:启用自动统计信息更新。
--ignore_dup_key=on:打开,将重复键值插入唯一索引时会出现警告消息。只有违反唯一性约束的行才会失败。
--ignore_dup_key=off:关闭,将重复键值插入唯一索引时会出现错误消息。回滚整个INSERT操作。
--allow_row_locks=on:访问索引时允许行锁。数据库引擎确定何时使用行锁。
--allow_row_locks=off:不使用行锁。
--allow_page_locks=on:访问索引时允许页锁。数据库引擎确定何时使用页锁。
-- allow_page_locks=off:不使用页锁。
with(pad_index=off,fillfactor=1,statistics_norecompute=off,ignore_dup_key=off,allow_row_locks=on,allow_page_locks=on) on [primary];
go

--添加约束描述
execute sp_addextendedproperty N'MS_Description', N'约束描述', N'SCHEMA', N'dbo', N'TABLE', N'表名', N'CONSTRAINT', N'约束名';
go

示例:

--修改唯一约束
--声明数据库引用
use testss;
go

--判断是否唯一约束是否存在,如果存在则删除,不存在则添加
if exists(select * from sysobjects where name='unique1')
alter table test1 drop constraint unique1;
go

--添加唯一约束
alter table test1
add constraint unique1
unique
nonclustered --在“表设计器”下的网格中,选择“创建为群集索引”,再从下拉列表中选择“是”创建群集索引,或选择“否”创建非群集索引。 对于每个表,只允许存在一个聚集索引。 如果此表中已经存在聚集索引,则您必须首先对原始索引清除此设置。
(name asc)
--fillfactor:填充因子适用于底层,指定一个百分比,指示数据库引擎在索引创建或更改期间应该使每个索引页的叶级别有多满。指定的值必须是1到100之间的整数值。默认值为0。
--pad_index=on:FILLFACTOR指定的可用空间百分比将应用于索引的中间级页面。
--pad_index=off or or fillfactor is not specified:在给定中间页面上的一组键的情况下,中间级页面被填充到接近容量,为索引可以具有的最大大小的至少一行留下足够的空间。
--statistics_norecompute=on:过时的统计信息不会自动重新计算。
--statistics_norecompute=off:启用自动统计信息更新。
--ignore_dup_key=on:打开,将重复键值插入唯一索引时会出现警告消息。只有违反唯一性约束的行才会失败。
--ignore_dup_key=off:关闭,将重复键值插入唯一索引时会出现错误消息。回滚整个INSERT操作。
--allow_row_locks=on:访问索引时允许行锁。数据库引擎确定何时使用行锁。
--allow_row_locks=off:不使用行锁。
--allow_page_locks=on:访问索引时允许页锁。数据库引擎确定何时使用页锁。
-- allow_page_locks=off:不使用页锁。
with(pad_index=off,fillfactor=1,statistics_norecompute=off,ignore_dup_key=off,allow_row_locks=on,allow_page_locks=on) on [primary];
go

--添加约束描述
execute sp_addextendedproperty N'MS_Description', N'修改唯一约束', N'SCHEMA', N'dbo', N'TABLE', N'test1', N'CONSTRAINT', N'unique1';
go

UNIQUE约束修改优缺点

优点:

1、可以使用唯一约束扩大列数据约束范围。

缺点:

1、如果列存在唯一约束,要列数据类型,可能会修改失败。

SQLServer之修改UNIQUE约束的更多相关文章

  1. SQLServer之修改DEFAULT约束

    使用SSMS数据库管理工具修改DEFAULT约束 1.连接数据库.选择数据表->右键点击->选择设计. 2.在表设计器窗口->选中要修改的数据列->在列属性中找到默认值绑定-& ...

  2. SQLServer之修改CHECK约束

    使用SSMS数据库管理工具修改CHECK约束 1.打开数据库,选择数据表->右键点击->选择设计(或者展开约束,选择约束,右键点击,选择修改,后面步骤相同). 2.选择要修改的数据列-&g ...

  3. Constraint5:unique 约束和null

    unique约束使用unique index来限制列值的唯一性: 创建unique约束之后,column中允许插入null值,unique 约束将两个null值看作是相同的(即null=null为tr ...

  4. SQLServer之UNIQUE约束

    UNIQUE约束添加规则 1.唯一约束确保表中的一列数据没有相同的值. 2.与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束. 使用SSMS ...

  5. SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束

    一直在关注软件设计方面,数据库方面就忽略了很多,最近在设计数据库时遇到了一些小麻烦,主要是数据库中约束和性能调优方面的应用,以前在学习 Sql Server 2000,还有后来的 Sql Server ...

  6. SQLServer Alter 修改表的列名的解决

    解决:在SQLServer中修改表的列名,可以调用存储过程sp_rename. [sql]use Test;--使用数据库  sp_rename 'd_s_t.avg_grade','avg_g',' ...

  7. SQLServer之FOREIGN KEY约束

    FOREIGN KEY约束添加规则 1.外键约束并不仅仅可以与另一表的主键约束相链接,它还可以定义为引用另一个表中 UNIQUE 约束的列. 2.如果在 FOREIGN KEY 约束的列中输入非 NU ...

  8. [SqlServer]SQL Server创建约束图解

    SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Unique 约束. Default 约束和 Check 约束,今天使用SQL Server2008 ...

  9. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

随机推荐

  1. TLS 1.3 VS TLS 1.2,让你明白 TLS 1.3 的强大

    HTTPS 加密时代已经来临,近两年,Google.Baidu.Facebook 等互联网巨头,不谋而合地开始大力推行 HTTPS, 2018 年 7 月 25 日,Chrome 68 上线,所有 H ...

  2. Curl 请求数据多’1‘

    今天做curl请求时遇到一个问题 数据请求回来,无缘无故多了1 加上这一行代码就就可以了:curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

  3. Dubbo(二) —— dubbo配置

      一.配置原则 JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口. XML 次之,如果在 XML 中有配置,则 dubbo.properties ...

  4. C#版 - 小红书后台开发面试题: 二维数组中的查找

    二维数组中的查找 热度指数:24274 时间限制:1秒 空间限制:32768K 本题知识点: 查找 ​ 在线提交网址: http://www.nowcoder.com/practice/abc3fe2 ...

  5. [NewLife.XCode]对象字典缓存(百万军中取敌首级)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  6. nodejs搭建web项目

    如果要使用cnpm可安装淘宝cnpm镜像(事实证明不建议使用,因为cnpm和npm有一些包不同步)npm install -g cnpm --registry=https://registry.npm ...

  7. 使用MaxCompute Java SDK运行安全相关命令

    使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令.官方文档上有详细的MaxCompute安全指南,并给出了安全相关语句汇总.   简而言之,权限管理.列级 ...

  8. 执行对象Statement、PreparedStatement和CallableStatement详解 JDBC简介(五)

    执行对象是SQL的执行者,SQL是“安排好的任务”,执行对象就是“实际工作的人”. 执行对象有三种: Statement.PreparedStatement和CallableStatement,他们都 ...

  9. Aooms_微服务基础开发平台实战_002_工程构建

    一.关于框架更名的一点说明 最近在做年终总结.明年规划.还有几个项目需要了结.出解决方案,事情还比较多,死了不少脑细胞,距离上一篇文章发出已经过了3天,是不是有些人会认为我放弃了又不搞了,NONO,一 ...

  10. 使用VBA批量CSV转XLS(97-2003)

    Sub EditCsvToXls() Application.ScreenUpdating = False '文件目录 ChDir "C:\Users\QA-Department\Deskt ...