为什么我用sqlserver建了一个表将几个字段一起设为主键后就无法为它们单独添加外键?
我现在有一个学生表(学号),课程表(课程号),选课表(学号,课程号)
在选课表里学号,课程号是主键 要怎么给他们单独加外键关系?一个一个加会出错 一起加只能加一个表。。。
怎样在SQLSERVER设置双主键或多个主键
答案:4 悬赏:30 手机版
解决时间 2021-03-23 16:07
- 提问者网友:沉默菋噵
- 2021-03-23 01:40
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2019-09-13 02:38
首先一个表是不能有两个主键的。但是可以有两个字段组合成一个主键,这就是为什么有时候表里为什么会有两个字段都有主键的标志,那是因为他们组合成了一个主键了。我们可以先删除了原来的主键再用类似下面SQL语句建立:
alter table 你的表名 add constraint pk_name primary key (字段1,字段2);
或者在表设计器里面按住ctrl选中要设置主键的两列再设置主键就OK了.
alter table 你的表名 add constraint pk_name primary key (字段1,字段2);
或者在表设计器里面按住ctrl选中要设置主键的两列再设置主键就OK了.
全部回答
- 1楼网友:妄饮晩冬酒
- 2019-12-16 02:02
选课表
最好新建一个自己的主键,学号,课程号
作为外键
- 2楼网友:夜风逐马
- 2020-03-15 13:25
其实很简单的,举个例子说明如何设置两个主键
--创建学生表
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(学号,课程号) --将学号、课程号设为主键
)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯