我想知道SQL Server中用於存儲字符串的不同數據類型之間的區別。字符串的SQL Server數據類型差異
例如ntext
,nvarchar(X)
,varchar
,nvarchar(max)
等
什麼能在靈活性,資源使用和性能方面的建議?
我想知道SQL Server中用於存儲字符串的不同數據類型之間的區別。字符串的SQL Server數據類型差異
例如ntext
,nvarchar(X)
,varchar
,nvarchar(max)
等
什麼能在靈活性,資源使用和性能方面的建議?
所有字符串類型的N
是unicode的 - 2個字節每個字符,將存儲之類的東西西里爾字母,亞洲,阿拉伯,希伯來字母 - 而那些沒有領先N
不是Unicode(僅妥善保管西歐/ ASCII字符)
TEXT
和NTEXT
已廢棄 - 不使用這些了 - 使用(N)VARCHAR(MAX)
代替 - 見relevant MSDN documentation on that topic的細節
NVARCHAR(X)
是一個「正常」字符串, 8000字節的數據(4000個Unicode或8000個非Unicode字符) - 存儲在常規頁面中的SQL Server
NVARCHAR(MAX)
是一種特殊類型,高達2 GB的存儲空間(10億個Unicode字符) - 但它需要特殊的存儲處理,需要更多的努力,執行比常規字符串慢一點;使用只有當在絕對必要
參考下面的鏈接,nvarchar的區別和varchar然後選擇最適合你的
對於普通的英文字母使用VARCHAR和任何其他語言和外部字符使用nvarchar。 varchar使用每個charcater 1個字節進行存儲,nvarchar使用每個字符2個字節。
閱讀本文已經在這裏回答了問題,以獲得更清晰的..http://stackoverflow.com/questions/4187677/difference-between-different-string-types-in-sql-server – 2012-07-31 09:44:41