2011-08-07 13 views
12

No sé si hay un límite en la cantidad de caracteres si elijo nvarchar (MAX), y no estoy seguro de cuántos caracteres necesitaría de todos modos.¿Debo almacenar HTML como nvarchar (MAX) o ntext?

¿Cuál es el tipo de datos estándar para usar aquí? Estoy usando SQL Server 2008 R2

Respuesta

27

El tipo ntext está en desuso, al igual que text y image. Microsoft recomienda reemplazarlos por nvarchar(max), varchar(max) y varbinary(max) respectivamente.

Use nvarchar(max), por lo tanto.

Referencia:

1

La configuración predeterminada para NVARCHAR (MAX) es almacenar el valor de texto en la estructura de la tabla, a menos que el texto es superior a 8.000 bytes (que es 4000 doble -byte chars), en cuyo punto se comporta como un NTEXT y almacena el valor del texto en el LOB, y almacena un puntero al texto en la tabla, lo que da un rendimiento mucho peor.

En resumen, vaya a NVARCHAR(4000), siempre que esté bien perder bytes de más de 8K de longitud.

+2

El límite máximo explícita de 'nvarchar' es 4000. 8000 es de' varchar'. –

+0

thx. respuesta editada para reflejar esto (es decir, 8K = 4K caracteres de doble byte) – Bohemian

+2

¿Cuándo sería "correcto" perder datos? –

7

Las ventajas de utilizar nvarchar (MAX) son que puede ejecutar funciones como Replace, Left, Len, etc. en nvarchar (MAX) pero no en ntext. Las variables locales de ntext tampoco se pueden crear en procedimientos almacenados, pero nvarchar (MAX) puede hacerlo.

ntext es también probable que sea obsoleto en el futuro a favor de nvarchar (max) ver:

ntext, text, and image

Cuestiones relacionadas