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

Aktualisiert ein vorhandenes text-, ntext-, oder image-Feld.Updates an existing text, ntext, or image field. Verwenden Sie UPDATETEXT, um nur einen Teil einer vorhandenen text-, ntext- oder image-Spalte zu ändern.Use UPDATETEXT to change only a part of a text, ntext, or image column in place. Verwenden Sie WRITETEXT, um ein ganzes text-, ntext- oder image-Feld zu aktualisieren und zu ersetzen.Use WRITETEXT to update and replace a whole text, ntext, or image field.

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 stattdessen die Datentypen für große Werte und die . WRITE-Klausel der UPDATE-Anweisung. 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


UPDATETEXT [BULK] { table_name.dest_column_name dest_text_ptr }  
  { NULL | insert_offset }  
     { NULL | delete_length }  
     [ WITH LOG ]  
     [ inserted_data  
    | { table_name.src_column_name src_text_ptr } ]  

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.

table_name .table_name . dest_column_namedest_column_name
Der Name der zu aktualisierenden Tabelle oder der zu aktualisierenden Spalte vom Datentyp text, ntext oder image.Is the name of the table and text, ntext, or image column to be updated. Tabellen- und Spaltennamen müssen den Regeln für Bezeichner entsprechen.Table names 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.

dest_text_ptrdest_text_ptr
Ein Textzeigerwert (von der TEXTPTR-Funktion zurückgegeben), der auf die zu aktualisierenden Daten von text, ntext oder image zeigt.Is a text pointer value (returned by the TEXTPTR function) that points to the text, ntext, or image data to be updated. dest_text_ptr muss vom Datentyp binary( 16 ) sein.dest_text_ptr must be binary( 16 ).

insert_offsetinsert_offset
Die nullbasierte Startposition für das Update.Is the zero-based starting position for the update. Für text- oder image-Spalten stellt insert_offset die Zahl der ab dem Beginn der vorhandenen Spalte auszulassenden Bytes dar, bevor neue Daten eingefügt werden.For text or image columns, insert_offset is the number of bytes to skip from the start of the existing column before inserting new data. Für ntext-Spalten stellt insert_offset die Anzahl von Zeichen dar (jedes ntext-Zeichen verwendet 2 Bytes).For ntext columns, insert_offsetis the number of characters (each ntext character uses 2 bytes). Die vorhandenen text-, ntext- oder image-Daten, die an dieser nullbasierten Startposition beginnen, werden nach rechts verschoben, um Platz für die neuen Daten zu schaffen.The existing text, ntext, or image data starting at this zero-based starting position is shifted to the right to make room for the new data. Mit dem Wert 0 werden die neuen Daten am Beginn der vorhandenen Daten eingefügt.A value of 0 inserts the new data at the beginning of the existing data. Mit dem Wert NULL werden die neuen Daten an den vorhandenen Datenwert angefügt.A value of NULL appends the new data to the existing data value.

delete_lengthdelete_length
Die Länge der Daten, die aus der vorhandenen text-, ntext- oder image-Spalte gelöscht werden sollen, ausgehend von der insert_offset-Position.Is the length of data to delete from the existing text, ntext, or image column, starting at the insert_offset position. Der Wert delete_length wird für text- und image-Spalten in Bytes und für ntext-Spalten in Zeichen angegeben.The delete_lengthvalue is specified in bytes for text and image columns and in characters for ntext columns. Jedes ntext-Zeichen verwendet 2 Bytes.Each ntext character uses 2 bytes. Mit dem Wert 0 werden keine Daten gelöscht.A value of 0 deletes no data. Mit dem Wert NULL werden alle Daten von der insert_offset-Position bis zum Ende der vorhandenen text- oder image-Spalte gelöscht.A value of NULL deletes all data from the insert_offset position to the end of the existing text or image column.

WITH LOGWITH LOG
Die Protokollierung wird durch das für die Datenbank wirksame Wiederherstellungsmodell bestimmt.Logging is determined by the recovery model in effect for the database.

inserted_datainserted_data
Die Daten, die in die vorhandenen text-, ntext- oder image-Spalten am Speicherplatz insert_offset eingefügt werden sollen.Is the data to be inserted into the existing text, ntext, or image column at the insert_offset location. Dabei handelt es sich um einen einzelnen char-, nchar-, varchar-, nvarchar-, binary-, varbinary-, text-, ntext- oder image-Wert.This is a single char, nchar, varchar, nvarchar, binary, varbinary, text, ntext, or image value. inserted_data kann ein Literal oder eine Variable sein.inserted_data can be a literal or a variable.

table_name.src_column_nametable_name.src_column_name
Der Name der Tabelle und text-, ntext- oder image-Spalte, die als Quelle der eingefügten Daten verwendet wird.Is the name of the table and text, ntext, or image column used as the source of the inserted data. Tabellen- und Spaltennamen müssen den Regeln für Bezeichner entsprechen.Table names and column names must comply with the rules for identifiers.

src_text_ptrsrc_text_ptr
Ein Textzeigerwert (zurückgegeben von der TEXTPTR-Funktion), der auf eine text-, ntext- oder image-Spalte verweist, die als Quelle der eingefügten Daten verwendet wird.Is a text pointer value (returned by the TEXTPTR function) that points to a text, ntext, or image column used as the source of the inserted data.

Hinweis

Der Wert scr_text_ptr darf nicht mit dem Wert dest_text_ptr übereinstimmen.scr_text_ptr value must not be the same as dest_text_ptrvalue.

RemarksRemarks

Bei neu eingefügten Daten kann es sich um eine einzelne inserted_data-Konstante, einen Tabellennamen, einen Spaltennamen oder einen Textzeiger handeln.Newly inserted data can be a single inserted_data constant, table name, column name, or text pointer.

UpdateaktionUpdate action UPDATETEXT-ParameterUPDATETEXT parameters
Ersetzen vorhandener DatenTo replace existing data Geben Sie einen insert_offset-Wert ungleich NULL, einen delete_length-Wert ungleich 0 (null) und die neuen Daten an, die eingefügt werden sollten.Specify a nonnull insert_offset value, a nonzero delete_length value, and the new data to be inserted.
Löschen vorhandener DatenTo delete existing data Geben Sie einen insert_offset-Wert ungleich NULL und einen delete_length-Wert ungleich 0 (null) an.Specify a nonnull insert_offset value and a nonzero delete_length. Geben Sie keine neuen einzufügenden Daten an.Do not specify new data to be inserted.
Einfügen neuer DateienTo insert new data Geben Sie den insert_offset-Wert, einen delete_length-Wert von 0 (null) und die neuen Daten an, die eingefügt werden sollen.Specify the insert_offset value, a delete_length of 0, and the new data to be inserted.

Für eine optimale Leistung empfiehlt es sich, Daten vom Typ text, ntext und image in Segmenten mit der Größe eines Vielfachen von 8,040 Bytes einzufügen oder zu aktualisieren.For best performance we recommend that text, ntext and image data be inserted or updated in chunks sizes that are multiples of 8,040 bytes.

In SQL ServerSQL Server können Textzeiger auf text-, ntext- oder image-Daten in Zeilen vorhanden sein, die jedoch möglicherweise nicht gültig sind.In SQL ServerSQL Server, in-row text pointers to text, ntext, or image data may exist but may not be valid. Informationen zur Option „text in row“ finden Sie unter sp_tableoption (Transact-SQL).For information about the text in row option, see sp_tableoption (Transact-SQL). Informationen dazu, wie Textzeiger ungültig gemacht werden können, finden Sie unter sp_invalidate_textptr (Transact-SQL).For information about invalidating text pointers, see sp_invalidate_textptr (Transact-SQL).

Verwenden Sie WRITETEXT, um text-Spalten mit NULL zu initialisieren. UPDATETEXT initialisiert text-Spalten mit einer leeren Zeichenfolge.To initialize text columns to NULL, use WRITETEXT; UPDATETEXT initializes text columns to an empty string.

BerechtigungenPermissions

Erfordert die UPDATE-Berechtigung für die angegebene Tabelle.Requires UPDATE permission on the specified table.

BeispieleExamples

Im folgenden Beispiel wird der Textzeiger in die lokale Variable @ptrval eingefügt. Anschließend wird mit UPDATETEXT ein Rechtschreibfehler aktualisiert.The following example puts the text pointer into the local variable @ptrval, and then uses UPDATETEXT to update a spelling error.

Hinweis

Um dieses Beispiel auszuführen, müssen Sie die pubs-Datenbank installieren.To run this example, you must install the pubs 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'  
UPDATETEXT pub_info.pr_info @ptrval 88 1 'b';  
GO  
ALTER DATABASE pubs SET RECOVERY FULL;  
GO  

Weitere Informationen finden Sie unterSee Also

READTEXT (Transact-SQL) READTEXT (Transact-SQL)
TEXTPTR (Transact-SQL) TEXTPTR (Transact-SQL)
WRITETEXT (Transact-SQL)WRITETEXT (Transact-SQL)