Udostępnij za pośrednictwem


Changing ntext, text or image Data

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ótki ilości danych w instrukcja SQL UPDATE char, nchar, lub binary określono danych.

  • Użycie WRITETEXT.

  • Można użyć aplikacji obiektów ADO AppendChunk metoda do określania długości kwoty ntext, text, lub image dane.

  • Można użyć aplikacji baz danych OLE ISequentialStream interfejs, aby zapisać nowy ntext, text, lub image wartości. Aby uzyskać więcej informacji zobaczBLOBs i obiektów OLE.

  • ODBC aplikacje mogą używać formularza danych na wykonanie programu SQLPutData zapisać nowy ntext, text, lub image wartości. Aby uzyskać więcej informacji zobaczZarządzanie kolumny obrazu i tekstu.

  • Biblioteki DB aplikacji można użyć dbwritetext funkcja.Aby uzyskać więcej informacji zobaczText and Image Functions (Transact-SQL).

SQL Server obsługuje także aktualizowanie tylko część ntext, text, lub image wartość. W bibliotece DB można to zrobić przy użyciu dbupdatetext funkcja.Wszystkie inne aplikacje i Transact-SQL skrypty wsadowe, procedur przechowywanych i wyzwalaczy za pomocą instrukcja UPDATETEXT tylko część ntext, text, lub image Kolumna.

Następujący skrypt pokazuje przy użyciu UPDATETEXT 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

Końcowe instrukcja SELECT zestaw wyników jest:

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