WRITETEXT (Transact-SQL)WRITETEXT (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

Permite la actualización interactiva de registro mínimo de una columna text, ntext o image existente.Permits minimally logged, interactive updating of an existing text, ntext, or image column. WRITETEXT sobrescribe completamente los datos existentes en la columna afectada.WRITETEXT overwrites any existing data in the column it affects. No se puede usar WRITETEXT en las columnas text, ntext e image de vistas.WRITETEXT cannot be used on text, ntext, and image columns in views.

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

  
WRITETEXT [BULK]  
  { table.column text_ptr }  
  [ WITH LOG ] { data }  

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 .columntable .column
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 update. Los nombres de tablas y columnas deben cumplir las reglas de los identificadores.Table 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.

text_ptrtext_ptr
Es un valor que almacena el puntero a los datos text, ntext o image.Is a value that stores the pointer to the text, ntext, or image data. text_ptr debe ser de tipo binary(16). Para crear un puntero de texto, ejecute una instrucción INSERT o UPDATE con datos que no sean NULL para la columna text, ntext o image.text_ptr must be binary(16).To create a text pointer, execute an INSERT or UPDATE statement with data that is not null for the text, ntext, or image column.

WITH LOGWITH LOG
Omitido por SQL ServerSQL Server.Ignored by SQL ServerSQL Server. 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.

datadata
Son los datos reales de tipo text, ntext o image que se van a almacenar.Is the actual text, ntext or image data to store. data puede ser un literal o un parámetro.data can be a literal or a parameter. La longitud máxima de texto que se puede insertar interactivamente con WRITETEXT es de 120 KB aproximadamente para datos de tipo text, ntext e image.The maximum length of text that can be inserted interactively with WRITETEXT is approximately 120 KB for text, ntext, and image data.

NotasRemarks

Use WRITETEXT para reemplazar datos de tipo text, ntext e image y UPDATETEXT para modificar datos de tipo text, ntext e image.Use WRITETEXT to replace text, ntext, and image data and UPDATETEXT to modify text, ntext, and image data. UPDATETEXT es más flexible debido a que cambia solo una parte de una columna text, ntext o image, en lugar de la columna completa.UPDATETEXT is more flexible because it changes only a part of a text, ntext, or image column instead of the whole column.

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

Si el modelo de recuperación de la base de datos es simple u optimizado para cargas masivas de registros, las operaciones text, ntext e image que usen WRITETEXT se registrarán mínimamente cuando se inserten o se anexen datos nuevos.If the database recovery model is simple or bulk-logged, text, ntext, and image operations that use WRITETEXT are minimally logged operations when new data is inserted or appended.

Nota

El registro mínimo no se utiliza cuando se actualizan los datos existentes.Minimal logging is not used when existing values are updated.

Para que WRITETEXT funcione correctamente, la columna ya debe contener un puntero de texto válido.For WRITETEXT to work correctly, the column must already contain a valid text pointer.

Si en la tabla no existe texto de fila, SQL ServerSQL Server ahorra espacio al no inicializar las columnas text cuando se colocan valores NULL explícitos o implícitos en las columnas text con INSERT, y no es posible obtener ningún puntero de texto para estos valores NULL.If the table does not have in row text, SQL ServerSQL Server saves space by not initializing text columns when explicit or implicit null values are added in text columns with INSERT, and no text pointer can be obtained for such nulls. Para inicializar columnas text a NULL, use la instrucción UPDATE.To initialize text columns to NULL, use the UPDATE statement. Si en la tabla existe texto de fila, no es necesario inicializar a valores NULL la columna de texto y siempre es posible obtener un puntero de texto.If the table has in row text, you do not have to initialize the text column for nulls and you can always get a text pointer.

La función SQLPutData de ODBC es más rápida y usa menos memoria dinámica que WRITETEXT.The ODBC SQLPutData function is faster and uses less dynamic memory than WRITETEXT. Esta función puede insertar hasta 2 gigabytes de datos de tipo text, ntext o image.This function can insert up to 2 gigabytes of text, ntext, or image data.

En SQL ServerSQL Server, es posible que existan punteros de texto de fila a datos de tipo 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 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 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).

PermisosPermissions

Requiere el permiso UPDATE en la base de datos especificada.Requires UPDATE permission on the specified table. El permiso se puede transferir cuando se transfiere el permiso UPDATE.Permission is transferable when UPDATE permission is transferred.

EjemplosExamples

En el ejemplo siguiente el puntero de texto se sitúa en la variable local @ptrval y, a continuación, WRITETEXT sitúa la nueva cadena de texto en la fila a la que señala @ptrval.The following example puts the text pointer into the local variable @ptrval, and then WRITETEXT places the new text string into the row pointed to by @ptrval.

Nota

Para ejecutar este ejemplo, debe instalar la base de datos de ejemplo pubs.To run this example, you must install the pubs sample 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'  
WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!';  
GO  
ALTER DATABASE pubs SET RECOVERY SIMPLE;  
GO  

Consulte tambiénSee Also

Tipos de datos (Transact-SQL) Data Types (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL) DELETE (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
Instrucciones SET (Transact-SQL) SET Statements (Transact-SQL)
UPDATETEXT (Transact-SQL)UPDATETEXT (Transact-SQL)