2017-08-10 379 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

是啊獨特的約束爲我工作,謝謝 –