WRITETEXT (Transact-SQL)
Ermöglicht das minimal protokollierte, interaktive Update einer vorhandenen Spalte vom Datentyp text, ntext oder image. WRITETEXT überschreibt alle vorhandenen Daten in der betreffenden Spalte. WRITETEXT kann nicht für Spalten vom Datentyp text, ntext und image in Sichten verwendet werden.
Wichtig
Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion 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.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
WRITETEXT [BULK]
{ table.column text_ptr }
[ WITH LOG ] { data }
Argumente
BULK
Aktiviert Uploadtools, um einen Binärdaten-Datenstrom hochzuladen. Der Datenstrom muss vom Tool auf TDS-Protokollebene bereitgestellt werden. Wenn der Datenstrom nicht vorhanden ist, ignoriert der Abfrageprozessor die BULK-Option.Wichtig
Es wird empfohlen, die BULK-Option nicht in SQL Server-basierten Anwendungen zu verwenden.Diese Option kann in einer zukünftigen Version von SQL Server geändert oder entfernt werden.
table . column
Der Name der zu aktualisierenden Tabelle oder der zu aktualisierenden Spalte vom Datentyp text, ntext oder image. Tabellen- und Spaltennamen müssen den Regeln für Bezeichner entsprechen. Das Angeben des Datenbank- und des Besitzernamens ist optional.text_ptr
Ein Wert, in dem der Zeiger auf die Daten vom Typ text, ntext oder image gespeichert wird. text_ptr muss vom Datentyp binary(16) sein. Führen Sie zum Erstellen eines Textzeigers eine INSERT-Anweisung oder eine UPDATE-Anweisung für die Spalte text, ntext oder image mit Daten aus, die nicht NULL sind.WITH LOG
Wird von SQL Server ignoriert. Die Protokollierung wird durch das für die Datenbank wirksame Wiederherstellungsmodell bestimmt.data
Die Daten vom Typ text, ntext oder image, die gespeichert werden sollen. data kann ein Literal oder ein Parameter sein. text-, ntext- und image-Textdaten von maximal etwa 120 KB können interaktiv mit WRITETEXT eingefügt werden.
Hinweise
Verwenden Sie WRITETEXT, um text-, ntext- und image-Daten zu ersetzen, und UPDATETEXT, um text-, ntext- und image-Daten zu ändern. UPDATETEXT ist flexibler, weil damit nicht die gesamte Spalte, sondern nur ein Teil einer text-, ntext- oder image-Spalte geändert wird.
Für eine optimale Leistung empfiehlt es sich, Daten vom Typ text, ntext und image in Segmenten mit der Größe eines Vielfachen von 8040 Bytes einzufügen oder zu aktualisieren.
Wenn Sie das einfache oder massenprotokollierte Wiederherstellungsmodell verwenden, sind Vorgänge vom Typ text, ntext und image, die WRITETEXT verwenden, minimal protokollierte Vorgänge, wenn neue Daten eingefügt oder angefügt werden.
Hinweis
Die minimale Protokollierung wird nicht verwendet, wenn vorhandene Werte aktualisiert werden.
Die Spalte muss bereits einen gültigen Textzeiger enthalten, damit WRITETEXT ordnungsgemäß ausgeführt wird.
Wenn die Tabelle keinen Text in Zeilen enthält, spart SQL Server Speicherplatz, indem Spalten vom Datentyp text nicht initialisiert werden, wenn in Spalten vom Datentyp text explizite oder implizite NULL-Werte mit INSERT hinzugefügt werden. Für diese NULL-Werte kann kein Textzeiger erhalten werden. Verwenden Sie die UPDATE-Anweisung, um Spalten vom Datentyp text für NULL-Werte zu initialisieren. 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.
Die ODBC-Funktion SQLPutData ist schneller und verwendet weniger dynamischen Arbeitsspeicher als WRITETEXT. Diese Funktion kann bis zu 2 Gigabytes an Daten vom Typ text, ntext oder image einfügen.
In SQL Server sind möglicherweise Textzeiger auf Daten vom Typ text, ntext oder image in Zeilen vorhanden, die jedoch ungültig sind. Informationen zur text in row-Option finden Sie unter sp_tableoption (Transact-SQL). Informationen dazu, wie Textzeiger ungültig werden, finden Sie unter sp_invalidate_textptr (Transact-SQL).
Berechtigungen
Erfordert die UPDATE-Berechtigung für die angegebene Tabelle. Die Berechtigung ist übertragbar, wenn die UPDATE-Berechtigung übertragen wird.
Beispiele
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.
Hinweis
Um dieses Beispiel auszuführen, müssen Sie die pubs-Beispieldatenbank installieren.
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 auch
Verweis
DECLARE @local\_variable (Transact-SQL)