UPDATETEXT (Transact-SQL)

Actualiza un campo text, ntext o image existente. Utilice UPDATETEXT sólo para cambiar una parte de una columna text, ntext o image existente. Utilice WRITETEXT para actualizar y reemplazar un campo text, ntext o image completo.

ms189466.note(es-es,SQL.90).gifImportante:
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Utilice los tipos de datos de valores grandes y la cláusula .WRITE de la instrucción UPDATE, en su lugar.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


UPDATETEXT { table_name.dest_column_name dest_text_ptr }
    { NULL | insert_offset }
     { NULL | delete_length }
     [ WITH LOG ]
     [ inserted_data
    | { table_name.src_column_name src_text_ptr } ]

table_name . dest_column_name

Es el nombre de la tabla y la columna text, ntext o image que se actualizarán. Los nombres de las tablas y de las columnas se deben ajustar a las reglas para los identificadores. La especificación de los nombres de la base de datos y del propietario es opcional.

dest_text_ptr

Es el valor de un puntero de texto (devuelto por la función TEXTPTR) que señala a los datos text, ntext o image que se deben actualizar. dest_text_ptr debe ser de tipo binary(16).

insert_offset

Es la posición de inicio de la actualización a partir de cero. Para columnas text o image, insert_offset es el número de bytes que se debe omitir desde el principio de la columna existente antes de insertar nuevos datos. Para columnas ntext, insert_offset es el número de caracteres (cada carácter ntext utiliza 2 bytes). Los datos text, ntext o image existentes que empiecen en esta posición de inicio a partir de cero se desplazan a la derecha para dejar espacio a los nuevos datos. Un valor 0 inserta los nuevos datos al principio de los datos existentes. Un valor NULL anexa los nuevos datos al valor de datos existente.

delete_length

Es la longitud de los datos que se debe eliminar de la columna text, ntext o image existente, a partir de la posición insert_offset. El valor delete_length se especifica en bytes para columnas text e image, y en caracteres para columnas ntext. Cada carácter ntext utiliza 2 bytes. Con un valor 0 no se eliminan datos. Con un valor NULL, se eliminan todos los datos desde la posición insert_offset hasta el final de la columna text o image existente.

WITH LOG

No se tiene en cuenta en SQL Server 2000. En SQL Server 2005, el registro viene determinado por el modelo de recuperación activo en la base de datos.

inserted_data

Son los datos que se van a insertar en la columna text, ntext o image existente en la ubicación de insert_offset. Es un único valor char, nchar, varchar, nvarchar, binary, varbinary, text, ntext o image. inserted_data puede ser un literal o una variable.

table_name.src_column_name

Es el nombre de la tabla y de la columna text, ntext o image que se utiliza como origen de los datos insertados. Los nombres de las tablas y de las columnas se deben ajustar a las reglas para los identificadores.

src_text_ptr

Es un valor de puntero de texto (devuelto por la función TEXTPTR) que señala a una columna text, ntext o image utilizada como origen de los datos insertados.

ms189466.note(es-es,SQL.90).gifNota:
El valor scr_text_ptr debe ser distinto del valor dest_text_ptr.

Los datos recién insertados pueden ser una única constante inserted_data, un nombre de tabla, un nombre de columna o un puntero de texto.

Acción de actualización Parámetros de UPDATETEXT

Para sustituir los datos existentes

Especifique un valor de insert_offset que no sea NULL, un valor de delete_length que no sea cero y los nuevos datos que se deban insertar.

Para eliminar datos existentes

Especifique un valor de insert_offset que no sea NULL y un valor de delete_length que no sea cero No especifique nuevos datos para la inserción.

Para insertar nuevos datos

Especifique el valor de insert_offset, un valor 0 para delete_length y los nuevos datos que se deben insertar.

Para aumentar el rendimiento, se recomienda insertar o actualizar datos de tipo text, ntext e image en tamaños de fragmentos que sean múltiplos de 8.040 bytes.

En SQL Server, es posible que existan punteros de texto consecutivos para datos de tipo text, ntext o image pero que no sean válidos. Par obtener más información sobre la opción text in row, vea sp_tableoption (Transact-SQL). Para obtener más información sobre cómo invalidar punteros de texto, vea sp_invalidate_textptr (Transact-SQL).

Para inicializar columnas text con valores NULL, utilice UPDATETEXT cuando el nivel de compatibilidad sea igual a 65. Si el nivel de compatibilidad es igual a 70, utilice WRITETEXT para inicializar columnas text con NULL; de lo contrario, UPDATETEXT inicializa columnas text con una cadena vacía. Para obtener más información sobre cómo establecer los niveles de compatibilidad, vea sp_dbcmptlevel (Transact-SQL).

Requiere el permiso UPDATE en la base de datos especificada.

En el ejemplo siguiente se coloca el puntero de texto en la variable local @ptrval; a continuación, se utiliza UPDATETEXT para actualizar un error de ortografía.

ms189466.note(es-es,SQL.90).gifNota:
Para ejecutar este ejemplo, debe instalar la base de datos pubs. Para obtener información sobre cómo instalar la base de datos pubs, vea Descargar las bases de datos de ejemplo Northwind y pubs.

USE pubs;
GO
ALTER DATABASE pubs SET RECOVERY SIMPLE;
GO
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(pr_info) 
   FROM pub_info pr, publishers p
      WHERE p.pub_id = pr.pub_id 
      AND p.pub_name = 'New Moon Books'
UPDATETEXT pub_info.pr_info @ptrval 88 1 'b';
GO
ALTER DATABASE pubs SET RECOVERY FULL;
GO

Adiciones de comunidad

AGREGAR
Mostrar: