SQLServer之修改PRIMARY KEY
使用SSMS数据库管理工具修改PRIMARY KEY
1、连接数据库,选择数据表-》右键点击-》选择设计(或者展开键,选择要修改的键,右键点击,选择修改,后面步骤相同)。
2、选择要修改的数据列-》右键点击-》选择索引/键。
3、在索引/键弹出框中-》选择要修改的主键-》类型选择主键-》点击列。
4、在索引列弹出框中-》选择主键数据列-》选择主键的排序规则-》点击确定。
5、在索引/键弹出框中-》输入要修改的主键名称-》输入要修改的主键描述-》表设计器规则可以使用系统默认-》点击关闭。
6、点击保存(或者ctrl+s)-》关闭表设计器-》刷新表-》查看修改结果。
使用T-SQL脚本修改PRIMARY KEY
若要使用 Transact-SQL 修改 PRIMARY KEY 约束,必须先删除现有的 PRIMARY KEY 约束,然后再用新定义重新创建该约束。
语法:
--声明使用数据库
use 数据库;
go
--如果已存在主键,则先删除再添加,如果不存在在则不删除
if exists(select * from sysobjects where name=主键名)
alter table 表名 drop constraint 主键名;
go
alter table 表名
add constraint 主键名
primary key
[nonclustered | clustered] ----在“表设计器”下的网格中,选择“创建为群集索引”,再从下拉列表中选择“是”创建群集索引,或选择“否”创建非群集索引。 对于每个表,只允许存在一个聚集索引。 如果此表中已经存在聚集索引,则您必须首先对原始索引清除此设置。
(列名 [asc | desc],列名 [asc | desc])
--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(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='PK__test1__3213E83F466EE881')
alter table test1 drop constraint PK__test1__3213E83F466EE881;
go
alter table test1
add constraint PK__test1__3213E83F466EE881
primary key
nonclustered ----在“表设计器”下的网格中,选择“创建为群集索引”,再从下拉列表中选择“是”创建群集索引,或选择“否”创建非群集索引。 对于每个表,只允许存在一个聚集索引。 如果此表中已经存在聚集索引,则您必须首先对原始索引清除此设置。
(id asc)
--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(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'PK__test1__3213E83F466EE881';
go
修改PRIMARY KEY主键优缺点
优点:
1、主键可以是任意数据类型。
2、整型主键简单、效率高。
3、使用GUID作为主键安全,保证唯一性。
4、使用GUID作为主键不会产生自增字段那样数据合并时的问题。
缺点:
1、整型主键有数据条数的限制。
2、整型主键在数据库进行数据合并时会比较麻烦。
3、整型之外的数据类型毫无规律,要在上面建立索引很耗时,所以效率要比使用自增字段低。
4、整型之外的主键占用大量存储空间。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SQLServer之修改DEFAULT约束
原文: SQLServer之修改DEFAULT约束 使用SSMS数据库管理工具修改DEFAULT约束 1、连接数据库、选择数据表-》右键点击-》选择设计。 2、在表设计器窗口-》选中要修改的数据列-》在列属性中找到默认值绑定-》进行修改。 3、点击保存(或者ctrl+s)-》关闭表设计器-》刷新表-》重新打开表设计器查看。 使用T-SQL脚本修改DEFAULT约束 DEFAULT约束修改规则必须首先删除现有的DEFAULT约束,然后使用新定义重新创建,才能使用Transact-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(sel...
- 下一篇
SQLServer之修改UNIQUE约束
原文: SQLServer之修改UNIQUE约束 使用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 na...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境