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 utilizar 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 como OFF, el límite de almacenamiento consecutivo para los tipos de valores grandes es de 8.000 bytes. Una raíz de 16 bytes se almacena de forma consecutiva cuando esta opción se establece como ON. Para obtener más información, vea sp_tableoption (Transact-SQL).
Los tipos de datos de valores grandes tienen un comportamiento similar a sus equivalentes más pequeños, 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 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).
Importante |
---|
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 los 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).