Freigeben über


READTEXT (Transact-SQL)

Liest text-, ntext- oder image-Werte aus einer text-, ntext- oder image-Spalte, wobei bei einem angegebenen Offset begonnen und die angegebene Anzahl von Bytes gelesen wird.

Wichtiger HinweisWichtig

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 Funktion SUBSTRING.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]

Argumente

  • table**.**column
    Dies ist der Name einer Tabelle und Spalte, aus der gelesen wird. Tabellen- und Spaltennamen müssen den Regeln für Bezeichner entsprechen. Die Angabe der Tabellen- und Spaltennamen ist erforderlich, wohingegen die Angabe des Datenbank- und Besitzernamens optional ist.

  • text_ptr
    Ein gültiger Textzeiger. text_ptr muss vom Datentyp binary(16) sein.

  • offset
    Die Anzahl von Bytes (beim Verwenden der Datentypen text oder image) oder Zeichen (beim Verwenden des Datentyps ntext), die ausgelassen werden sollen, bevor mit dem Lesen der text-, image- oder ntext-Daten begonnen wird.

  • size
    Die Anzahl von Bytes (beim Verwenden der Datentypen text oder image) oder Zeichen (beim Verwenden des Datentyps ntext) der zu lesenden Daten. Wenn size = 0 ist, werden 4 KB Daten gelesen.

  • HOLDLOCK
    Bewirkt, dass der Textwert bis zum Ende der Transaktion gesperrt wird und nur gelesen werden kann. Andere Benutzer können den Wert dann lesen, aber nicht ändern.

Hinweise

Verwenden Sie die TEXTPTR-Funktion, um einen gültigen text_ptr-Wert abzurufen.TEXTPTR gibt einen Zeiger auf die text-, ntext- oder image-Spalte in der angegebenen Zeile oder auf die text-, ntext- oder image-Spalte der letzten Zeile zurück, die von der Abfrage zurückgegeben wird, wenn mehrere Zeilen zurückgegeben werden. Da TEXTPTR eine 16 Bytes große binäre Zeichenfolge zurückgibt, ist es empfehlenswert, eine lokale Variable für den Textzeiger zu deklarieren und dann die Variable mit READTEXT einzusetzen. Weitere Informationen zum Deklarieren einer lokalen Variablen finden Sie unter DECLARE @local_variable (Transact-SQL).

In SQL Server gibt es möglicherweise Textzeiger in Zeilen, die jedoch ungültig sind. Weitere Informationen zur Option text in row finden Sie unter sp_tableoption (Transact-SQL). Weitere Informationen dazu, wie Textzeiger ungültig gemacht werden können, finden Sie unter sp_invalidate_textptr (Transact-SQL).

Der Wert der @@TEXTSIZE-Funktion setzt die für READTEXT angegebene Größe außer Kraft, wenn diese geringer als die für READTEXT angegebene Größe ist. Die @@TEXTSIZE-Funktion gibt die Beschränkung der Anzahl zurückzugebender Bytes an, die von der SET TEXTSIZE-Anweisung festgelegt wurde. Weitere Informationen zum Festlegen der Sitzungseinstellung für TEXTSIZE finden Sie unter SET TEXTSIZE (Transact-SQL).

Berechtigungen

READTEXT-Berechtigungen werden standardmäßig an Benutzer mit SELECT-Berechtigungen für die angegebene Tabelle vergeben. Die Berechtigungen sind übertragbar, wenn SELECT-Berechtigungen übertragen werden.

Beispiele

Im folgenden Beispiel werden die Zeichen 2 bis 26 der pr_info-Spalte in der pub_info-Tabelle gelesen.

HinweisHinweis

Um dieses Beispiel auszuführen, müssen Sie die pubs-Beispieldatenbank installieren. Informationen zum Installieren der pubs-Beispieldatenbank finden Sie unter Herunterladen der Beispieldatenbanken Northwind und pubs.

USE pubs;
GO
DECLARE @ptrval varbinary(16);
SELECT @ptrval = TEXTPTR(pr_info) 
   FROM pub_info pr INNER JOIN publishers p
      ON pr.pub_id = p.pub_id 
      AND p.pub_name = 'New Moon Books'
READTEXT pub_info.pr_info @ptrval 1 25;
GO