在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