在SQL Server中使用nvarchar(max)和NText数据类型的优点和缺点是什么?我不需要向后兼容,所以在旧的SQL Server版本中不支持nvarchar(max)是可以的。
编辑:显然,这个问题也适用于TEXT和IMAGE vs. varchar(max)和varbinary(max),用于稍后搜索这些数据类型。
在SQL Server中使用nvarchar(max)和NText数据类型的优点和缺点是什么?我不需要向后兼容,所以在旧的SQL Server版本中不支持nvarchar(max)是可以的。
编辑:显然,这个问题也适用于TEXT和IMAGE vs. varchar(max)和varbinary(max),用于稍后搜索这些数据类型。
当前回答
优点是你可以在nvarchar(max)上使用LEN和LEFT这样的函数,而不能对ntext和text这样做。它也更容易使用nvarchar(max)比文本,你必须使用WRITETEXT和UPDATETEXT。
此外,text、ntext等也已弃用(http://msdn.microsoft.com/en-us/library/ms187993.aspx)
其他回答
Nvarchar (max)是你想要使用的。最大的优点是可以在此数据类型上使用所有T-SQL字符串函数。这在ntext中是不可能的。我不知道有什么真正的缺点。
优点是你可以在nvarchar(max)上使用LEN和LEFT这样的函数,而不能对ntext和text这样做。它也更容易使用nvarchar(max)比文本,你必须使用WRITETEXT和UPDATETEXT。
此外,text、ntext等也已弃用(http://msdn.microsoft.com/en-us/library/ms187993.aspx)
你应该使用nvarchar(max):
MSDN
Ntext将始终将其数据存储在单独的数据库页面中,而nvarchar(max)将尝试将数据存储在数据库记录本身中。
因此,nvarchar(max)稍微快一些(如果您的文本小于8 kB)。我还注意到数据库的大小会增长得稍微慢一些,这也是好的。
Go nvarchar (max)。
Text(以及NText和Image)的最大缺点是它将在SQL Server的未来版本中被删除,正如文档所述。这将有效地使您的模式更难升级时,该版本的SQL Server将发布。