Cambiar datos ntext, text o image
Cuando reemplaza el valor completo, puede actualizar los valores ntext, text o image de una fila de las maneras siguientes:
- Especifique cantidades relativamente cortas de datos en una instrucción UPDATE, de la misma forma que se especifican los datos char, nchar o binary.
- Utilice WRITETEXT.
- Las aplicaciones ADO pueden utilizar el método AppendChunk para especificar grandes cantidades de datos de tipo ntext, text o image.
- Las aplicaciones OLE DB pueden utilizar la interfaz ISequentialStream para escribir nuevos valores de tipo ntext, text o image. Para obtener más información, vea BLOBs and OLE Objects.
- Las aplicaciones ODBC pueden utilizar el formulario de datos en ejecución de SQLPutData para escribir nuevos valores de tipo ntext, text o image. Para obtener más información, vea Managing Text and Image Columns.
- Las aplicaciones de DB-Library pueden utilizar la función dbwritetext. Para obtener más información, vea Funciones de texto e imagen (Transact-SQL).
SQL Server 2005 también admite la actualización de una parte de un valor de tipo ntext, text o image. En DB-Library, esto se puede hacer con la función dbupdatetext. El resto de las aplicaciones y secuencias de comandos, lotes, procedimientos almacenados y desencadenadores de Transact-SQL pueden utilizar la instrucción UPDATETEXT para actualizar sólo una parte de una columna ntext, text o image.
La siguiente secuencia de comandos muestra la utilización de UPDATETEXT con PATINDEX para buscar y reemplazar una cadena específica en un valor de tipo text:
USE Northwind
GO
CREATE TABLE TextParts (ColA INT PRIMARY KEY, ColB TEXT)
GO
INSERT INTO TextParts
VALUES( 1,
'Sample string START TAG Text to go END TAG Trailing text.')
GO
DECLARE @PtrVar BINARY(16)
DECLARE @InsertPos INT
DECLARE @DeleteLen INT
SELECT @PtrVar = TEXTPTR(ColB),
@InsertPos = (PATINDEX('%START TAG%', ColB) + 9),
@DeleteLen = (
PATINDEX('%END TAG%', ColB) -
( PATINDEX('%START TAG%', ColB) + 9
+ 2 /* allow for blanks */ )
)
FROM TextParts
WHERE ColA = 1
UPDATETEXT TextParts.ColB
@PtrVar
@InsertPos
@DeleteLen
WITH LOG
'The new text'
GO
SELECT * FROM TextParts
GO
El conjunto de resultados de la instrucción SELECT final es:
ColA ColB
----------- ------------------------------------------------------------
1 Sample string START TAG The new text END TAG Trailing text.
Vea también
Conceptos
Cambiar datos mediante UPDATE
Cambiar datos mediante un cursor
Otros recursos
Descargar las bases de datos de ejemplo Northwind y pubs