2017-08-10 107 views
0

我在我的数据库中有3个表格,一个用于学生,另一个用于课程,第三个用于存储每个学生从课程中选择的内容。我想阻止学生多次选择相同的课程。我应该在第三个表的Insert语句中提供什么条件?防止SQL Server中的重复记录

感谢

+2

你到目前为止尝试过什么? – Harsh

+1

欢迎来到StackOverflo。请看[如何问](https://stackoverflow.com/help/how-to-ask) –

+0

这真的不是一个有效的问题。这是你的商业逻辑。我非常清楚,这需要一个方法调用GetvaluefromtableByuserId(userid),然后一个条件。它是如此简单。 –

回答

5

你StudentCourse表应该对(StudentId,CourseId)表的唯一约束。

作为一种替代方法,您可以在StudentCourse表上创建Primary Key作为(StudentId,CourseId)上的组合键。

+0

是的,谢谢你的工作,uniqe约束做的工作 –

1

尽管数据库中的每个表都必须具有主键约束,但在执行大多数数据库维护任务时,通常会使用自动生成的值。但是,主键本身不会保护您免受用户生成的或用户捕获的可能包含重复的数据。输入“唯一”约束!这是一个非常强大的表级约束,您可以将其应用于所选表格列,这可以极大地帮助防止数据中的重复。例如,假设您有一个“用户”表,并且其中有一个EmailAddress列,但捕获1个或2个具有相同电子邮件地址的用户肯定很奇怪。

+0

是啊独特的约束为我工作,谢谢 –