2009-04-27 201 views
1

我需要在數據庫中保存字符串。每個字符串的大小從1到N不等。我認爲這個限制大約是10000,也許更多。 nvarchar(MAX)是解決這個問題的最好方法嗎?SQL存儲字符串

回答

4

SQL Server 2005及更高版本中,NVARCHAR(MAX)是存儲長度超過4000個字符的字符串的最佳方式。

這是推薦用於SQL Server 2005及更高版本的唯一方法,但它仍支持TEXT列以實現向後兼容性。

請注意,您無法在NVARCHAR(MAX)列上創建索引。

要使用索引,請創建一個計算列並將其用於索引搜索。它可以作爲一種有效的粗過濾器:

CREATE TABLE foo (id INT NOT NULL, mytext NVARCHAR(MAX) NOT NULL, mytext_index AS CAST(mytext AS NVARCHAR(450)) 

CREATE INDEX ix_foo_mytext (mytext_index) 

SELECT * 
FROM mytext 
WHERE mytext_index LIKE 'L%' 
+0

超過4000,因爲我們正在談論nvarchar – 2009-04-27 15:31:41

1

nvarchar的是正確的,如果它們是的unicode(或其他非-7-或-8-比特串)。如果它們是例如ASCII latin-1文本(在很多情況下足夠了),varchar(MAX)將節省空間。