Teilen über


READTEXT (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Liest text-, ntext- oder image-Werte aus einer text-, ntext- oder image-Spalte. Beginnt mit dem Lesen bei einem angegebenen Offset und liest die angegebene Anzahl von Bytes.

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen die Funktion SUBSTRING.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

Tabelle . Spalte
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 bei Verwendung des Datentyps text oder image. Oder die Anzahl von Bytes für Zeichen (bei Verwendung des Datentyps ntext), die ausgelassen werden sollen, bevor mit dem Lesen der text-, image- oder ntext-Daten begonnen wird.

size ist die Anzahl von Bytes bei Verwendung des Datentyps text oder image. Es kann sich dabei auch um die Anzahl von Bytes für Zeichen bei Verwendung des Datentyps ntext für die zu lesenden Daten handeln. Wenn size gleich 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 lesen, aber nicht ändern.

Bemerkungen

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 zurück. TEXTPRT kann auch einen Zeiger auf die text-, ntext- oder image-Spalte in der letzten Zeile zurückgeben, 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 Funktion @@TEXTSIZE ersetzt die für READTEXT angegebene Größe, wenn er kleiner ist als die für READTEXT angegebene Größe. Die Funktion @@TEXTSIZE legt die Grenze für die Anzahl der zurückgegebenen Datenbytes fest, die durch die Anweisung SET TEXTSIZE festgelegt wird. 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.

Hinweis

Sie müssen die pubs-Beispieldatenbank installieren, um dieses Beispiel auszuführen.

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  

Weitere Informationen

@@TEXTSIZE (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (Transact-SQL)