[英]SQL Server - how to create unique constraint across multiple columns, where one column is VARCHAR
我需要能夠創建一個唯一約束來檢查字符串和整數組合是否唯一。
我試過代碼:
ALTER TABLE mytable ADD CONSTRAINT
constraint_Unique_ForeignID_MyString UNIQUE NONCLUSTERED
(
foreign_id, my_string_col
)
但是我得到了錯誤:
消息1919,第16級,州1,第1行
表“ my_string_tbl”中的列“ my_string_col”的類型無效,無法用作索引中的鍵列。
消息1750,級別16,狀態0,第1行
無法創建約束。 請參閱先前的錯誤。
如何創建所需的約束?
可能是:
在這種情況下,您可以基於值的哈希值添加計算列,並將其用作約束。
當然,如果您有text / ntext / image,則此操作也會失敗。 因此,請更改為SQL Server 2005引入的較新的varchar(max),nvarchar(max),varbinary(max)類型之一,並對其進行哈希處理
如何一個大 VARCHAR
是你列?
任何索引最多只能包含最多900個字節的列。 沒有辦法解決這個問題,或將該數字增加到一個更高的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.