UPDATETEXT (Transact-SQL)

Aktualisiert ein vorhandenes text-, ntext- oder image-Feld. Verwenden Sie UPDATETEXT, um nur einen Teil einer vorhandenen text-, ntext- oder image-Spalte zu ändern. Verwenden Sie WRITETEXT, um ein ganzes text-, ntext- oder image-Feld zu aktualisieren und zu ersetzen.

ms189466.note(de-de,SQL.90).gifWichtig:
Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen die Datentypen für große Werte und die .WRITE-Klausel der UPDATE-Anweisung.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

UPDATETEXT { 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 } ]

Argumente

table_name**.**dest_column_name

Der Name der Tabelle und der zu aktualisierenden text-, ntext- oder image-Spalte. Tabellen- und Spaltennamen müssen den Regeln für Bezeichner entsprechen. Das Angeben des Datenbank- und des Besitzernamens ist optional.

dest_text_ptr

Ein Textzeigerwert (zurückgegeben von der TEXTPTR-Funktion), der auf die zu aktualisierenden text-, ntext- oder image-Daten verweist. dest_text_ptr muss vom Datentyp binary(16) sein.

insert_offset

Die nullbasierte Startposition für die Aktualisierung. 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. Für ntext-Spalten stellt insert_offsetdie Anzahl der Zeichen dar (jedes ntext-Zeichen verwendet 2 Byte). 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. Mit dem Wert 0 werden die neuen Daten am Beginn der vorhandenen Daten eingefügt. Mit dem Wert NULL werden die neuen Daten an den vorhandenen Datenwert angefügt.

delete_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. Der Wert von delete_lengthwird für text- und image-Spalten in Byte und für ntext-Spalten in Zeichen angegeben. Jedes ntext-Zeichen belegt 2 Byte. Mit dem Wert 0 werden keine Daten gelöscht. Mit dem Wert NULL werden alle Daten von der insert_offset -Position bis zum Ende der vorhandenen text- oder image-Spalte gelöscht.

WITH LOG

Wird in SQL Server 2000 ignoriert. In SQL Server 2005 wird die Protokollierung von dem für die Datenbank geltenden Wiederherstellungsmodell bestimmt.

inserted_data

Die Daten, die der vorhandenen text-, ntext- oder image-Spalte an der insert_offset-Position hinzugefügt werden sollen. Dabei handelt es sich um einen einfachen char-, nchar-, varchar-, nvarchar-, binary-, varbinary-, text-, ntext- oder image-Wert. inserted_data kann ein Literal oder eine Variable sein.

table_name.src_column_name

Der Name der Tabelle und text-, ntext- oder image-Spalte, die als Quelle der eingefügten Daten verwendet wird. Tabellen- und Spaltennamen müssen den Regeln für Bezeichner entsprechen.

src_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.

ms189466.note(de-de,SQL.90).gifHinweis:
Der Wert von scr_text_ptrdarf nicht identisch sein mit dem Wert von dest_text_ptr.

Hinweise

Bei neu eingefügten Daten kann es sich um eine einzelne inserted_data-Konstante, einen Tabellennamen, einen Spaltennamen oder einen Textzeiger handeln.

Aktualisierungsaktion UPDATETEXT-Parameter

Ersetzen vorhandener Daten

Geben Sie einen insert_offset-Wert ungleich NULL, einen delete_length-Wert ungleich Null und die neuen einzufügenden Daten an.

Löschen vorhandener Daten

Geben Sie einen insert_offset-Wert ungleich NULL und einen delete_length-Wert ungleich Null an. Geben Sie keine neuen einzufügenden Daten an.

Einfügen neuer Dateien

Geben Sie den insert_offset-Wert, einen delete_length-Wert von 0 und die neuen einzufügenden Daten an.

Für optimale Ergebnisse sollten text-, ntext- und image-Daten in Abschnitten eingefügt oder aktualisiert werden, die ein Vielfaches von 8.040 Byte darstellen.

In SQL Server können Textzeiger auf text-, ntext- oder image-Daten in Zeilen vorhanden sein, sind aber möglicherweise nicht gültig. Informationen zur Option text in row finden Sie unter sp_tableoption (Transact-SQL). Informationen dazu, wie Textzeiger ungültig werden, finden Sie unter sp_invalidate_textptr (Transact-SQL).

Verwenden Sie UPDATETEXT zur Initialisierung von text-Spalten mit NULL, wenn der Kompatibilitätsgrad 65 entspricht. Bei einem Kompatibilitätsgrad von 70 verwenden Sie WRITETEXT, um Textspalten mit NULL zu initialisieren; andernfalls initialisiert UPDATETEXT text-Spalten mit einer leeren Zeichenfolge. Weitere Informationen zum Festlegen des Kompatibilitätsgrades finden Sie unter sp_dbcmptlevel (Transact-SQL).

Berechtigungen

Eerfordert die UPDATE-Berechtigung für die angegebene Tabelle.

Beispiele

Im folgenden Beispiel wird der Textzeiger in der lokalen Variablen @ptrval abgelegt. Anschließend wird mit UPDATETEXT ein Rechtschreibfehler aktualisiert.

ms189466.note(de-de,SQL.90).gifHinweis:
Um dieses Beispiel auszuführen, müssen Sie die pubs-Datenbank installieren. Informationen zum Installieren der pubs-Datenbank finden Sie unter Downloaden der Beispieldatenbanken Northwind und pubs.
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

Siehe auch

Verweis

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

Andere Ressourcen

Verwenden von Datentypen mit umfangreichen Werten

Hilfe und Informationen

Informationsquellen für SQL Server 2005