UPDATETEXT (Transact-SQL)UPDATETEXT (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Actualiza un campo text, ntext o image existente.Updates an existing text, ntext, or image field. Use UPDATETEXT para cambiar solo una parte de una columna text, ntext o image existente.Use UPDATETEXT to change only a part of a text, ntext, or image column in place. Use WRITETEXT para actualizar y reemplazar un campo text, ntext o image completo.Use WRITETEXT to update and replace a whole text, ntext, or image field.

Importante

Esta característica está en modo de mantenimiento y es posible que no se incluya en una versión futura de Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use los tipos de datos de valores grandes y la cláusula . WRITE de la instrucción UPDATE en su lugar.Use the large-value data types and the . WRITE clause of the UPDATE statement instead.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
UPDATETEXT [BULK] { 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 } ]  

ArgumentosArguments

BULKBULK
Hace posible que las herramientas de carga carguen flujos de datos binarios.Enables upload tools to upload a binary data stream. La herramienta debe proporcionar flujos en el nivel de protocolo TDS.The stream must be provided by the tool at the TDS protocol level. Cuando el flujo de datos no esté presente el procesador de consultas omite la opción BULK.When the data stream is not present the query processor ignores the BULK option.

Importante

Recomendamos que la opción BULK no se utilice en las aplicaciones basadas en SQL ServerSQL Server.We recommend that the BULK option not be used in SQL ServerSQL Server-based applications. Es posible que esta opción se modifique o quite en versiones futuras de SQL ServerSQL Server.This option might be changed or removed in a future version of SQL ServerSQL Server.

table_name .table_name . dest_column_namedest_column_name
Es el nombre de la tabla y la columna text, ntext o image que se van a actualizar.Is the name of the table and text, ntext, or image column to be updated. Los nombres de las tablas y de las columnas deben cumplir las reglas de los identificadores.Table names and column names must comply with the rules for identifiers. La especificación de los nombres de la base de datos y del propietario es opcional.Specifying the database name and owner names is optional.

dest_text_ptrdest_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 van a actualizar.Is a text pointer value (returned by the TEXTPTR function) that points to the text, ntext, or image data to be updated. dest_text_ptr debe ser binary( 16 ).dest_text_ptr must be binary( 16 ).

insert_offsetinsert_offset
Es la posición de inicio de la actualización a partir de cero.Is the zero-based starting position for the update. En columnas text o image, insert_offset es el número de bytes que se van a omitir desde el principio de la columna existente antes de insertar nuevos datos.For text or image columns, insert_offset is the number of bytes to skip from the start of the existing column before inserting new data. En columnas ntext, insert_offset es el número de caracteres (cada carácter ntext usa dos bytes).For ntext columns, insert_offsetis the number of characters (each ntext character uses 2 bytes). Los datos text, ntext o image existentes a partir de esta posición de inicio basada en cero se desplazan a la derecha para dejar espacio a los nuevos datos.The existing text, ntext, or image data starting at this zero-based starting position is shifted to the right to make room for the new data. Un valor 0 inserta los nuevos datos al principio de los datos existentes.A value of 0 inserts the new data at the beginning of the existing data. Un valor NULL anexa los nuevos datos al valor de datos existente.A value of NULL appends the new data to the existing data value.

delete_lengthdelete_length
Es la longitud de los datos que se van a eliminar de la columna text, ntext o image existente, a partir de la posición de insert_offset.Is the length of data to delete from the existing text, ntext, or image column, starting at the insert_offset position. El valor delete_length se expresa en bytes en las columnas text e image y en caracteres en las columnas ntext.The delete_lengthvalue is specified in bytes for text and image columns and in characters for ntext columns. Cada carácter ntext usa dos bytes.Each ntext character uses 2 bytes. Con un valor 0 no se eliminan datos.A value of 0 deletes no data. Con un valor NULL, se eliminan todos los datos desde la posición de insert_offset hasta el final de la columna text o image existente.A value of NULL deletes all data from the insert_offset position to the end of the existing text or image column.

WITH LOGWITH LOG
El registro está determinado por el modelo de recuperación vigente para la base de datos.Logging is determined by the recovery model in effect for the database.

inserted_datainserted_data
Son los datos que se van a insertar en la columna text, ntext o image existente en la posición de insert_offset.Is the data to be inserted into the existing text, ntext, or image column at the insert_offset location. Se trata de un solo valor char, nchar, varchar, nvarchar, binary, varbinary, text, ntext o image.This is a single char, nchar, varchar, nvarchar, binary, varbinary, text, ntext, or image value. inserted_data puede ser un literal o una variable.inserted_data can be a literal or a variable.

table_name.src_column_nametable_name.src_column_name
Es el nombre de la tabla y de la columna text, ntext o image que se van a usar como origen de los datos insertados.Is the name of the table and text, ntext, or image column used as the source of the inserted data. Los nombres de las tablas y de las columnas se deben ajustar a las reglas para los identificadores.Table names and column names must comply with the rules for identifiers.

src_text_ptrsrc_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 usada como origen de los datos insertados.Is a text pointer value (returned by the TEXTPTR function) that points to a text, ntext, or image column used as the source of the inserted data.

Nota

El valor scr_text_ptr no debe ser igual que el valor dest_text_ptr.scr_text_ptr value must not be the same as dest_text_ptrvalue.

NotasRemarks

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.Newly inserted data can be a single inserted_data constant, table name, column name, or text pointer.

Acción de actualizaciónUpdate action Parámetros de UPDATETEXTUPDATETEXT parameters
Para sustituir los datos existentesTo replace existing data Especifique un valor insert_offset que no sea NULL, un valor delete_length que no sea cero y los nuevos datos que se van a insertar.Specify a nonnull insert_offset value, a nonzero delete_length value, and the new data to be inserted.
Para eliminar datos existentesTo delete existing data Especifique un valor insert_offset que no sea NULL y un valor delete_length que no sea cero.Specify a nonnull insert_offset value and a nonzero delete_length. No especifique nuevos datos para la inserción.Do not specify new data to be inserted.
Para insertar nuevos datosTo insert new data Especifique el valor insert_offset, un valor delete_length cero y los nuevos datos que se van a insertar.Specify the insert_offset value, a delete_length of 0, and the new data to be inserted.

Para mejorar el rendimiento, se recomienda insertar o actualizar los datos text, ntext e image en fragmentos que sean múltiplos de 8.040 bytes.For best performance we recommend that text, ntext and image data be inserted or updated in chunks sizes that are multiples of 8,040 bytes.

En SQL ServerSQL Server, es posible que existan punteros de texto consecutivos a datos text, ntext o image, pero que no sean válidos.In SQL ServerSQL Server, in-row text pointers to text, ntext, or image data may exist but may not be valid. Para obtener más información sobre la opción "text in row", vea sp_tableoption (Transact-SQL).For information about the text in row option, see sp_tableoption (Transact-SQL). Para obtener más información sobre cómo invalidar punteros de texto, vea sp_invalidate_textptr (Transact-SQL).For information about invalidating text pointers, see sp_invalidate_textptr (Transact-SQL).

Para inicializar columnas text en NULL, use WRITETEXT; UPDATETEXT inicializa columnas text en una cadena vacía.To initialize text columns to NULL, use WRITETEXT; UPDATETEXT initializes text columns to an empty string.

PermisosPermissions

Requiere el permiso UPDATE en la base de datos especificada.Requires UPDATE permission on the specified table.

EjemplosExamples

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.The following example puts the text pointer into the local variable @ptrval, and then uses UPDATETEXT to update a spelling error.

Nota

Para ejecutar este ejemplo, debe instalar la base de datos pubs.To run this example, you must install the pubs database.

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  

Consulte tambiénSee Also

READTEXT (Transact-SQL) READTEXT (Transact-SQL)
TEXTPTR (Transact-SQL) TEXTPTR (Transact-SQL)
WRITETEXT (Transact-SQL)WRITETEXT (Transact-SQL)