type length datatype data cuantos caracteres sql-server sql-server-2005 sql-server-2008 text nvarchar

sql-server - datatype - text length sql



nvarchar(max) vs NText (7)

Al parecer, debes usar nvarchar(max) :

MSDN

¿Cuáles son las ventajas y desventajas de usar los tipos de datos nvarchar(max) vs. NText en SQL Server? No necesito compatibilidad con versiones anteriores, por lo que está bien que nvarchar(max) no sea compatible con versiones anteriores de SQL Server.

Editar: aparentemente la pregunta también se aplica a TEXT e IMAGE vs. varchar(max) y varbinary(max) , para aquellos que buscan esos tipos de datos más adelante.


Deseo agregar que puede usar la cláusula .WRITE para actualizaciones parciales o completas y el alto rendimiento se agrega a los tipos de datos varchar(max)/nvarchar(max) .

Here puede encontrar un ejemplo completo del uso de la cláusula .WRITE .


La mayor desventaja de Text (junto con NText e Image ) es que se eliminará en una versión futura de SQL Server, como en http://msdn.microsoft.com/en-us/library/ms187993.aspx . Eso efectivamente hará que su esquema sea más difícil de actualizar cuando se lanzará esa versión de SQL Server.


Las ventajas son que puede usar funciones como LEN e LEFT en nvarchar(max) y no puede hacer eso contra ntext y text . También es más fácil trabajar con nvarchar(max) que con text donde debe usar WRITETEXT y UPDATETEXT .

Además, text , ntext , etc. están en desuso ( http://msdn.microsoft.com/en-us/library/ms187993.aspx )


VARCHAR(MAX) es lo suficientemente grande como para acomodar el campo TEXT . TEXT tipos de datos TEXT , NTEXT e IMAGE de SQL Server 2000 quedarán obsoletos en la versión futura de SQL Server, SQL Server 2005 ofrece compatibilidad con versiones anteriores para tipos de datos, pero se recomienda utilizar nuevos tipos de datos que sean VARCHAR(MAX) , NVARCHAR(MAX) y VARBINARY(MAX) .


ntext siempre almacenará sus datos en una página de base de datos separada, mientras que nvarchar(max) intentará almacenar los datos dentro del registro de la base de datos.

Entonces nvarchar(max) es algo más rápido (si tiene texto que es más pequeño que 8 kB). También noté que el tamaño de la base de datos crecerá un poco más lento, esto también es bueno.

Ir nvarchar(max) .


nvarchar(max) es lo que quiere usar. La mayor ventaja es que puede usar todas las funciones de cadena T-SQL en este tipo de datos. Esto no es posible con ntext . No estoy al tanto de ninguna desventaja real.