高分求教
两个问题。
1,设计了两个表:学生(学号,姓名,宿舍号,……),
宿舍(宿舍号,舍长号,……)。
其中‘学生表的宿舍号’作为外键参照‘宿舍表的宿舍号’,
‘宿舍表的舍长号’作为外键参照‘学生表的学号’
问题:如果保持这样的参照关系,会导致哪一个也表也建不成。该怎样解决?
2,用T-SQL怎样在一个‘属性组’上建立主码?
例如表:选课(学号,课程号,……),以(学号,课程号)建立主码。
注:"primary key(学号,课程号)" 这样写提示错误:无法向表 '选课' 中添加多个 PRIMARY KEY 约束。
问题点数:100、回复次数:5Top
1 楼feiyun0112(http://feiyun0112.cnblogs.com/)回复于 2006-05-02 19:00:55 得分 0
ALTER TABLE dbo.属性组 ADD CONSTRAINT
PK_aaa PRIMARY KEY CLUSTERED
(
学号,
课程号
) ON [PRIMARY]
GOTop
2 楼hjzr(华杰真人)回复于 2006-05-03 13:23:47 得分 0
大哥,行不通呀,错误还是:无法向表 '选课' 中添加多个 PRIMARY KEY 约束。Top
3 楼zjcxc(邹建)回复于 2006-05-03 13:40:33 得分 100
-- 1.
--a. 建表
CREATE TABLE 学生(
学号 int PRIMARY KEY,
姓名 nvarchar(20),
宿舍号 int)
CREATE TABLE 宿舍(
宿舍号 int PRIMARY KEY,
舍长号 int
REFERENCES 学生(学号)) -- 舍长号 与 学号的外键
-- 宿舍号的外键
ALTER TABLE 学生 ADD
CONSTRAINT FK__学生__宿舍号__1273C1CD
FOREIGN KEY(宿舍号)
REFERENCES 宿舍(宿舍号)
--b. 删除测试
ALTER TABLE 学生
DROP CONSTRAINT FK__学生__宿舍号__1273C1CD
DROP TABLE 宿舍, 学生Top
4 楼zjcxc(邹建)回复于 2006-05-03 13:41:35 得分 0
注:"primary key(学号,课程号)" 这样写提示错误:无法向表 '选课' 中添加多个 PRIMARY KEY 约束。
说明你已经建立了一个主键, 一个表只能有一个主键. 你应该考虑用UNIQUE约束Top
5 楼hjzr(华杰真人)回复于 2006-05-03 15:37:01 得分 0
问题一解决了。多谢了啊!
不过第二个问题……。我的意思是在(学号,课程号)这个属性组上建立主码。Top




