我使用SQL Server 2008,並且我有一個表類型爲varchar(X)的列,我想要具有唯一值。唯一約束與預檢
實現該目標的最佳方法是什麼?我應該使用唯一約束並捕獲異常,還是應該在插入新值之前預先檢查?
有一個問題,應用程序被許多用戶使用,所以我猜預檢查可能會導致競爭條件,以防兩個用戶插入相同的值。
謝謝
我使用SQL Server 2008,並且我有一個表類型爲varchar(X)的列,我想要具有唯一值。唯一約束與預檢
實現該目標的最佳方法是什麼?我應該使用唯一約束並捕獲異常,還是應該在插入新值之前預先檢查?
有一個問題,應用程序被許多用戶使用,所以我猜預檢查可能會導致競爭條件,以防兩個用戶插入相同的值。
謝謝
讓DB爲你做好工作。創建唯一的約束。
有沒有任何一種方法會比另一種更好的方案?我在這裏發佈了一個相關的問題 - https://stackoverflow.com/questions/21889843/unique-constraint-vs-checking-before-insert請幫助我。謝謝。 – Steam
如果要求這些值是唯一的---那麼約束是唯一可以實現的方法。可靠的所謂預檢將需要一定程度的鎖定,使系統的這一部分基本上是單一用戶。
使用約束(UNIQUE或PRIMARY KEY)。這種方式的關鍵是強制執行每個應用程序。如果需要,您可以在存儲過程中執行額外的檢查和處理 - 在插入之前或之後。
相關問題 - https://stackoverflow.com/questions/21889843/unique-constraint-vs-checking-before-insert – Steam