文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

sqlserver设置主键的实现步骤

2023-10-19 21:38

关注

开始之前

限制和局限

创建主键会自动创建相应的唯一群集索引、聚集索引或非聚集索引(如果这样指定)

若要重新定义主键,则必须首先删除与现有主键之间的任何关系,然后才能创建新主键。 此时,将显示一条消息警告您:作为该过程的一部分,将自动删除现有关系。

如果主键由多个列组成,则其中一个列将允许重复值,但是主键中所有列的值的各种组合必须是唯一的。

在SQL Server中,主键是数据表中唯一标识每一行记录的列,如果一个表没有主键,表中的记录将不能被区分开。此外,主键还有助于提高查询性能,使用主键加快了表中记录的访问速度,因此,在使用SQL Server进行数据库设计时,主键的设计就显得尤为重要。

首先,在数据库中创建好数据表后,可以使用以下T-SQL代码语句

1. 使用 T-SQL 命令,执行完命令后,主键就会被成功设置

ALTER TABLE 表名
ADD CONSTRAINT PK_主键名称 PRIMARY KEY (列名)

--其中,表名是要设置主键的表名,主键名称是主键约束的名称(可以自己定义),列名是要设置为主键的列名

ALTER TABLE sys_menu
ADD CONSTRAINT PK_menu_id PRIMARY KEY (menu_id)



ALTER TABLE student
ADD CONSTRAINT PK_student PRIMARY KEY (StuID) --将表中的StuID设为主键


ALTER TABLE student
DROP CONSTRAINT PK_student			  --将表中的主键约束PK_studnet删除





除此之外,在SQL Server中,还可以使用下列代码定义表的主键

CREATE TABLE table_name

(

column_name datatype PRIMARY KEY

)

CREATE TABLE student                                           --表名为student
(
	  StuID int NOT NULL PRIMARY KEY,                           --学生学号
	  StuName varchar(15) NOT NULL,                             --学生姓名
	  Sex char(2) NULL,                                         --性别
	  Major varchar(20) NULL,                                   --所选专业
)


primary key(列名1,列名2)

此外,在SQL Server中,还可以使用如下代码定义联合主键,也就是具有多个字段的主键。例如,要同时定义列customer_id和 order_id两个字段为一个联合主键,可以使用以下T-SQL代码

CREATE TABLE orders

(

customer_id INT,

order_id INT,

PRIMARY KEY(customer_id, order_id)

)

alter table 表名 add constraint pk_name primary key (列名1,列名2)

因此,在SQL Server中,定义表的主键非常容易,无论是单一主键还是联合主键,只需要几行代码,就可以完成定义。

设置主键并置为非空

 要先确定你要设置主键的的那列不为空,如果你的列为空,以下代码可以帮助你设为空并且添加主键


ALTER TABLE Table_Member ALTER COLUMN StudentID bigint NOT NULL;
 

ALTER TABLE Table_Member WITH NOCHECK
ADD CONSTRAINT PK_Table_Member PRIMARY KEY (StudentID)

更改已经建好的表中主键列的字符类型

同样的,这个操作也要分为两步,在SQL server 的设计理念中,主键列不可更改数据类型,如果要将不是主键的列更改字符类型,直接跳到第二步。

ALTER TABLE [表名] DROP CONSTRAINT [主键约束名]

ALTER TABLE [表名] ALTER COLUMN [列名] [数据类型]

到此这篇关于sqlserver设置主键的实现步骤的文章就介绍到这了,更多相关sqlserver设置主键内容请搜索编程客栈(www.cppcns.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.cppcns.com)! 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯