2009-04-27 19 views
1

データベースに文字列を保存する必要があります。各文字列は、1からNまでのサイズが異なります。制限は約10000になると思います。これを解決するにはnvarchar(MAX)が最適な方法でしょうか?文字列を格納するSQL

答えて

4

SQL Server 2005以降では、NVARCHAR(MAX)は、4000文字以上の文字列を格納する最適な方法です。

SQL Server 2005以上で推奨される唯一の方法ですが、後方互換性のためにはまだTEXTの列がサポートされています。

NVARCHAR(MAX)列には索引を作成できないことに注意してください。

インデックスを使用するには、計算列を作成し、インデックス検索で使用します。これは、効率的な粗いフィルタとして機能することができる:それらはユニコード(または他の非7-または-8-ビット列)である場合

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

私たちはnvarcharについて話しているので –

+0

確かに、それを逃した。急いでの固定:) – Quassnoi

1

nvarchar型が正しいです。たとえASCIIラテン1テキスト(多くの場合十分)であれば、varchar(MAX)はスペースを節約します。

関連する問題