[英]SQL Server column datatype and indexable
我需要在SQL Server表中存儲可變字符串的長度,長度可以在0到10000個左右的字符之間變化。
我需要使用類似運算符%abc
或abc%
過濾文本。
我想到使用varchar
或nvarchar
,但無法在此數據類型上創建索引。
請為選擇列數據類型提供設計建議,並使列可索引。
謝謝
SQL Server將使用like 'abc%'
的索引。 但是,如果通配符是第一個,它將不使用索引。
如果要搜索完整的單詞,則應調查contains()
和全文搜索 。
我想到使用varchar或nvarchar,但是無法在此數據類型上創建索引。
這些是基於文本的信息的正確數據類型。
無法創建索引的原因本身與數據類型無關-但是在SQL Server中,僅當索引中的列(或列集)具有最大值時才可以創建索引。 理論大小為900字節 (或更少)。
這意味着無法索引VARCHAR(1000)
(或VARCHAR(MAX)
)。 此大小限制是您的問題,而不是數據類型。
解決方案:實際上只有一種解決方案:在要索引的列中使用較少的字節。 或者,按照Gordon的建議,檢查SQL Server的全文本索引功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.