在SQL Server中使用nvarchar(max)
與NText
數據類型有什麼優缺點?我不需要向後兼容性,因此舊版SQL Server發行版不支持nvarchar(max)
。nvarchar(max)vs NText
編輯:顯然的問題也適用於TEXT
和IMAGE
與varchar(max)
和varbinary(max)
,對於那些尋找那些數據類型之後。
在SQL Server中使用nvarchar(max)
與NText
數據類型有什麼優缺點?我不需要向後兼容性,因此舊版SQL Server發行版不支持nvarchar(max)
。nvarchar(max)vs NText
編輯:顯然的問題也適用於TEXT
和IMAGE
與varchar(max)
和varbinary(max)
,對於那些尋找那些數據類型之後。
的好處是,你可以使用nvarchar(max)
功能,如LEN
和LEFT
,你不能這樣做,對ntext
和text
。使用nvarchar(max)
比使用WRITETEXT
和UPDATETEXT
的text
更容易。
此外,text
,ntext
,等等,都被棄用(http://msdn.microsoft.com/en-us/library/ms187993.aspx)
VARCHAR(MAX)
大到足以容納TEXT
字段。 TEXT
,NTEXT
和IMAGE
SQL Server 2000的數據類型將在SQL Server的未來版本中被棄用,SQL Server 2005提供對數據類型的向後兼容性,但建議使用新數據類型VARCHAR(MAX)
,NVARCHAR(MAX)
和VARBINARY(MAX)
。
nvarchar(max)
是您要使用什麼。最大的好處是你可以在這個數據類型上使用所有的T-SQL字符串函數。這是不可能的,ntext
。我不知道有任何真正的缺點。
我不明白的是,他們說'nvarchar(max)'去,但是這限制了我4000個字符。如果我想要一個領域持有更多的呢? – VoidKing 2013-12-19 20:36:15
nvarchar(最大)不會將您限制爲4000個字符。你有無限數量的字符。此外,文本和ntext已被SQL Server棄用。這意味着在未來的版本中,它們將不再受支持。 – 2013-12-19 22:35:35
OIC,我正在使用SQL Server CE,它將我的'nvarchar(max)'限制爲4000個字符。所以對於SQL Server Compact,我不得不在某些情況下使用'ntext'。當他們停止它,我想我將不得不升級一些網站。 – VoidKing 2013-12-20 14:09:17
Text
(與NText
和Image
一起)的最大缺點是它將在未來版本的SQL Server中被刪除,如the documentation。這將有效地使您的模式更難以升級,屆時將發佈該版本的SQL Server。
你應該使用顯然nvarchar(max)
:
ntext
總是它的數據存儲在一個單獨的數據庫頁面,而nvarchar(max)
將嘗試將數據存儲在數據庫記錄本身。
因此nvarchar(max)
速度稍快(如果您的文本較小,爲8 kB)。我也注意到數據庫的大小會增長得稍慢,這也是不錯的。
轉到nvarchar(max)
。
[SQL Server 2016](https://msdn.microsoft.com/en-us/library/ms187993.aspx)顯然仍會支持它們。 – Confluence 2015-06-29 19:16:27
@Confluence歷史上,就SQL Server中存在的文本和nText較舊的數據類型而言,它們是否與varchar和nvarchar相比較? – RBT 2016-05-08 12:14:57