Usar tipos de datos de valores grandes

El especificador max expande la capacidad de almacenamiento de los tipos de datos varchar, nvarchar y varbinary. varchar(max), nvarchar(max) y varbinary(max) se denominan colectivamente tipos de datos de valores grandes. Puede usar los tipos de datos de valores grandes para almacenar hasta 2^31-1 bytes de datos.

Nota

Cuando la opción large value types out of row del procedimiento almacenado sp_tableoption se establece en OFF, el límite de almacenamiento consecutivo para los tipos de valores grandes es de 8.000 bytes. Cuando esta opción se establece en ON, una raíz de 16 bytes se almacena de forma consecutiva. Para obtener más información, vea sp_tableoption (Transact-SQL).

Nota

Si va a replicar datos, quizás necesite configurar max text repl size (opción) en -1.

Los tipos de datos de valores grandes tienen un comportamiento similar a sus equivalentes menores, varchar, nvarchar y varbinary. Esta similitud permite a SQL Server almacenar y recuperar datos grandes de caracteres, Unicode y binarios con mayor eficacia.

Con los tipos de datos de valores grandes puede trabajar con SQL Server de un modo que no era posible con los tipos de datos text, ntext y image de las versiones anteriores de SQL Server. Es posible definir variables que pueden almacenar grandes cantidades de datos, hasta 2^31-1 bytes de datos en formato carácter, binario y Unicode. Para obtener más información, vea Variables de Transact-SQL.

En la tabla siguiente se muestra la relación entre los tipos de datos de valores grandes y sus equivalentes de las versiones anteriores de SQL Server.

Tipos de datos de valores grandes

LOB de versiones anteriores

varchar(max)

text*

nvarchar(max)

ntext*

varbinary(max)

image

* Los clientes de SQL Server versión 6.5 no admiten el tipo de datos ntext; por lo tanto, no reconocen nvarchar(max).

Nota importanteImportante

Utilice los tipos de datos varchar(max), nvarchar(max) y varbinary(max) en lugar de los tipos de datos text, ntext y image.

Los tipos de datos de valores grandes tienen el mismo comportamiento que sus equivalentes más pequeños, varchar(n), nvarchar(n) y varbinary(n). A continuación se describe el uso de los tipos de datos de valores grandes en algunos escenarios concretos:

  • Cursores

    Puesto que se pueden definir variables de tipos de datos de valores grandes, los datos de las columnas de tipos de datos de valores grandes de FETCH se pueden poner en variables locales. Para obtener más información, vea FETCH (Transact-SQL).

    El uso de tipos de datos de valores grandes no afecta al uso de cursores que fuerza la conversión de tipo de cursor.

  • Actualizaciones fragmentadas

    La instrucción UPDATE ahora admite una cláusula **.**WRITE( ) para realizar actualizaciones parciales en las columnas de datos de valores grandes subyacentes. Es similar a las operaciones de puntero de texto, WRITETEXT y UPDATETEXT, admitidas en los tipos de datos text, ntext, image en las versiones anteriores de SQL Server. Para obtener más información, vea UPDATE (Transact-SQL).

  • Desencadenadores

    Los desencadenadores AFTER están permitidos en las referencias de columnas de tipos de datos de valores grandes en las tablas inserted y deleted. Para obtener más información, vea CREATE TRIGGER (Transact-SQL).

  • Funciones de cadena

    Las funciones de cadena integradas que pueden operar en datos de caracteres y binarios se han mejorado para que admitan tipos de datos de valores grandes como argumentos. Entre estas funciones figuran:

    Para obtener información acerca de las funciones de cadena, vea Funciones de cadena (Transact-SQL).