WRITETEXT (Transact-SQL)WRITETEXT (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Ermöglicht die minimal protokollierte, interaktive Aktualisierung einer vorhandenen Text, Ntext, oder Image Spalte.Permits minimally logged, interactive updating of an existing text, ntext, or image column. WRITETEXT überschreibt alle vorhandenen Daten in der betreffenden Spalte.WRITETEXT overwrites any existing data in the column it affects. WRITETEXT kann nicht verwendet werden, auf Text, Ntext, und Image Spalten in den Ansichten.WRITETEXT cannot be used on text, ntext, and image columns in views.

Wichtig

Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt.This feature will be removed in a future version of Microsoft SQL Server. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.Verwenden Sie die Datentypen mit umfangreichen Werten und die . WRITE-Klausel aus, der die UPDATE Anweisung stattdessen. Use the large-value data types and the .WRITE clause of the UPDATE statement instead.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


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

ArgumenteArguments

BULKBULK
Aktiviert Uploadtools, um einen Binärdaten-Datenstrom hochzuladen.Enables upload tools to upload a binary data stream. Der Datenstrom muss vom Tool auf TDS-Protokollebene bereitgestellt werden.The stream must be provided by the tool at the TDS protocol level. Wenn der Datenstrom nicht vorhanden ist, ignoriert der Abfrageprozessor die BULK-Option.When the data stream is not present the query processor ignores the BULK option.

Wichtig

Es wird empfohlen, die BULK-Option nicht in SQL ServerSQL Server-basierten Anwendungen zu verwenden.We recommend that the BULK option not be used in SQL ServerSQL Server-based applications. Diese Option kann in einer zukünftigen Version von SQL ServerSQL Server geändert oder entfernt werden.This option might be changed or removed in a future version of SQL ServerSQL Server.

Tabelle .columntable .column
Der Name der Tabelle und Text, Ntext, oder Image zu aktualisierenden Spalte.Is the name of the table and text, ntext, or image column to update. Tabellen- und Spaltennamen müssen den Regeln für entsprechen Bezeichner.Table and column names must comply with the rules for identifiers. Das Angeben des Datenbank- und des Besitzernamens ist optional.Specifying the database name and owner names is optional.

text_ptrtext_ptr
Ist ein Wert, der den Zeiger zu speichert die Text, Ntext, oder Image Daten.Is a value that stores the pointer to the text, ntext, or image data. Text_ptr muss binary(16). Führen Sie zum Erstellen eines Textzeigers eine einfügen oder UPDATE -Anweisung mit Daten ungleich null für den Text, Ntext, oder Image Spalte.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
Wird von SQL ServerSQL Server ignoriert.Ignored by SQL ServerSQL Server. Die Protokollierung wird durch das für die Datenbank wirksame Wiederherstellungsmodell bestimmt.Logging is determined by the recovery model in effect for the database.

Datendata
Der tatsächliche Text, Ntext oder Image zum Speichern von Daten.Is the actual text, ntext or image data to store. Daten kann ein Literal oder ein Parameter sein.data can be a literal or a parameter. Die maximale Länge des Texts, die interaktiv mit WRITETEXT eingefügt werden kann, ist etwa 120 KB Text, Ntext, und Image Daten.The maximum length of text that can be inserted interactively with WRITETEXT is approximately 120 KB for text, ntext, and image data.

HinweiseRemarks

Verwenden Sie WRITETEXT, um ersetzen Text, Ntext, und Image Daten und so ändern Sie UPDATETEXT Text, Ntext, und Image Daten.Use WRITETEXT to replace text, ntext, and image data and UPDATETEXT to modify text, ntext, and image data. UPDATETEXT ist flexibler, da sie nur einen Teil des ändert ein Text, Ntext, oder Image Spalte nicht die gesamte Spalte.UPDATETEXT is more flexible because it changes only a part of a text, ntext, or image column instead of the whole column.

Für eine optimale Leistung empfehlen wir Text, Ntext, und Image Daten eingefügt oder aktualisiert in Blockgrößen, die ein Vielfaches von 8.040 Byte sind.For best performance we recommend that text, ntext, and image data be inserted or updated in chunk sizes that are multiples of 8040 bytes.

Wenn das Wiederherstellungsmodell einfach oder Massenprotokolliert ist Text, Ntext, und Image Vorgänge, die WRITETEXT-Anweisung zu verwenden sind minimal protokollierte Vorgänge aus, wenn neue Daten eingefügt oder angefügt.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.

Hinweis

Die minimale Protokollierung wird nicht verwendet, wenn vorhandene Werte aktualisiert werden.Minimal logging is not used when existing values are updated.

Die Spalte muss bereits einen gültigen Textzeiger enthalten, damit WRITETEXT ordnungsgemäß ausgeführt wird.For WRITETEXT to work correctly, the column must already contain a valid text pointer.

Verfügt die Tabelle nicht Text in Zeilen SQL ServerSQL Server wird Speicherplatz gespart, indem Sie nicht initialisieren Text Spalten, wenn explizite oder implizite null-Werte in hinzugefügt werden Text Spalten mit einfügen und keine Textzeiger werden können für diese NULL-Werte abgerufen.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. Initialisieren Text -Spalten mit NULL, verwenden Sie die UPDATE-Anweisung.To initialize text columns to NULL, use the UPDATE statement. Wenn die Tabelle über Text in Zeilen verfügt, muss die text-Spalte nicht für NULL-Werte initialisiert werden, und Sie können immer einen Textzeiger erhalten.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.

Der ODBC-Funktion SQLPutData ist schneller und verwendet weniger dynamischen Arbeitsspeicher als WRITETEXT.The ODBC SQLPutData function is faster and uses less dynamic memory than WRITETEXT. Diese Funktion kann bis zu 2 GB an einfügen Text, Ntext, oder Image Daten.This function can insert up to 2 gigabytes of text, ntext, or image data.

In SQL ServerSQL Serverin Zeile Textzeiger auf Text, Ntext, oder Image Daten vorhanden, die jedoch möglicherweise nicht mehr gültig.In SQL ServerSQL Server, in row text pointers to text, ntext, or image data may exist but may not be valid. Informationen zu dem Text in Row-Option finden Sie unter Sp_tableoption ( Transact-SQL ) .For information about the text in row option, see sp_tableoption (Transact-SQL). Weitere Informationen zu den Textzeiger, finden Sie unter Sp_invalidate_textptr ( Transact-SQL ) .For information about invalidating text pointers, see sp_invalidate_textptr (Transact-SQL).

BerechtigungenPermissions

Erfordert die UPDATE-Berechtigung für die angegebene Tabelle.Requires UPDATE permission on the specified table. Die Berechtigung ist übertragbar, wenn die UPDATE-Berechtigung übertragen wird.Permission is transferable when UPDATE permission is transferred.

BeispieleExamples

Im folgenden Beispiel wird der Textzeiger in die lokale Variable @ptrval eingefügt. Anschließend wird die neue Textzeichenfolge von WRITETEXT in die Zeile eingefügt, auf die @ptrval zeigt.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.

Hinweis

Um dieses Beispiel auszuführen, müssen Sie die pubs-Beispieldatenbank installieren.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  

Siehe auchSee Also

Datentypen (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)
SET-Anweisungen (Transact-SQL) SET Statements (Transact-SQL)
UPDATETEXT ( Transact-SQL )UPDATETEXT (Transact-SQL)