Udostępnij za pośrednictwem


Zmiana ntext, tekst lub obraz danych

Po zamianie wartości całkowitej można aktualizować ntext, text, lub image wartości w wierszu, w następujący sposób:

  • Podobnie jak określić stosunkowo krótkim ilości danych w instrukcja UPDATE char, nchar, lub binary określonych danych.

  • Użyj WRITETEXT.

  • Aplikacje ADO można używać AppendChunk metoda do określania kwoty długi ntext, text, lub image danych.

  • Można użyć aplikacji DB OLE ISequentialStream interfejs, aby zapisać nowy ntext, text, lub image wartości.Aby uzyskać więcej informacji, zobacz Liczba bloków BLOB i obiekty OLE.

  • Aplikacji ODBC można użyć formularza danych na wykonanie z SQLPutData zapisać nowy ntext, text, lub image wartości.Aby uzyskać więcej informacji, zobacz Zarządzanie tekst i obraz kolumn.

  • Aplikacje biblioteczne DB można użyć dbwritetext funkcja.Aby uzyskać więcej informacji, zobacz Tekst i obraz funkcje (Transact-SQL).

SQL Serverobsługuje także aktualizowania tylko część ntext, text, lub image wartości.W bibliotece DB można to zrobić za pomocą dbupdatetext funkcja.Wszystkie inne aplikacje i Transact-SQL skrypty partii, procedur przechowywanych i wyzwalaczy za pomocą instrukcja UPDATETEXT można zaktualizować tylko część ntext, text, lub image kolumna.

Następujący skrypt pokazuje przy użyciu UPDATETEXT z PATINDEX, aby znaleźć i zamienić ciąg określony w text wartość:

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

Zestaw wyników z końcowego wybierz instrukcja jest:

ColA        ColB
----------- ------------------------------------------------------------
1           Sample string START TAG The new text END TAG Trailing text.