簡體   English   中英

SQL Server列數據類型和可索引

[英]SQL Server column datatype and indexable

我需要在SQL Server表中存儲可變字符串的長度,長度可以在0到10000個左右的字符之間變化。

我需要使用類似運算符%abcabc%過濾文本。

我想到使用varcharnvarchar ,但無法在此數據類型上創建索引。

請為選擇列數據類型提供設計建議,並使列可索引。

謝謝

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM