SQLServer设置两个主键,sqlserver设置主键
首先一个表是不能有两个主键的。但是可以有两个字段组合成一个主键,这就是为什么有时候表里为什么会有两个字段都有主键的标志,那是因为他们组合成了一个主键了。
我们可以先删除了原来的主键再用TSQL建
alter table tablename add constraint pk_name primary key (colname1,colname2)
或者在表设计器里面按住ctrl选中要设置主键的两列再设置主键就OK了
其实很简单的,举个例子说明如何设置两个主键
--创建学生表
CREATE TABLE 学生表
(
学号 int NOT NULL PRIMARY KEY (学号),
姓名 nvarchar(20) NOT NULL,
性别 bit,
出生日期 int not null,
系编码 int not null
)
--创建课程表
CREATE TABLE 课程表
(
课程号 int NOT NULL PRIMARY KEY (课程号),
课程名 nvarchar(100) NOT NULL,
选修课号 int,
学分 decimal(2,1)
)
--创建选课表
CREATE TABLE 选课表
(
学号 int not null,
课程号 int not null,
成绩 decimal(3,1)
primary key(学号,课程号) --将学号、课程号设为主键
)
不设置主键也没事的,但是主键却有着无可替代的作用
保证实体的完整性;
加快数据库的操作速度
在表中添加新记录时,sql server会自动检查新记录的主键值,不允许该值与其他记录的主键值重fu。
sql server自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记