SQL 字段唯一的约束方法 50分

来源:百度知道 编辑:UC知道 时间:2024/06/01 10:37:39
sql server2000下,我有一个名字是MissionAnswer的表,已经建立且使用中,里面有两个字段MissionID、StudentID

这两字段成对出现时应该是唯一的,比如学号StudentID是71的学生,任务编号MissionID为1的答案只能是一个,我本来是用程序控制的,第一次是insert,下一次是update.
但是实际使用过程中,还是发现有个别学生的答案重复提交了,可能是网络延迟或是刷新等问题造成的,同一学生的同一任务答案多次出现了。
现在我想能不能在SQL端加上一个约束条件,让MissionID和StudentID不出现重复的问题,怎么设置?
主键不行的,我举例说明一下啊
ID MissionID StudentID
1 1 71
2 1 88
3 2 71
4 2 99
5 1 71
注意,数据中ID为5的这行数据不能出现,它与第一条重复了

如果这个表没有主键,你可以用这两个字段做为主键,如果已有其他主键,给表的这两个字段加上一个唯一索引就可以了。可以用以下语句添加:

CREATE UNIQUE INDEX [MissionAnswer_idx1] ON [MissionAnswer] ([MissionID],[StudentID])

把这两个字段建成主键

方法1:如1L所说,将这两个字段联立设为主键
方法2:每次Insert之前,Select一下,是不是已经有数据项存在,如果有,就不操作,如果没有,就插入;

建唯一索引