Delen via


READTEXT (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Leet tekst-, ntext- of afbeeldingswaarden uit een tekst-, ntext- of afbeeldingskolom . Begint met lezen vanaf een gespecificeerde offset en het aangegeven aantal bytes.

Belangrijk

Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan de SUBSTRING-functie .

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

tafel.kolom
Is de naam van een tabel en kolom waaruit je kunt lezen. Tabel- en kolomnamen moeten voldoen aan de regels voor identificaties. Het specificeren van de tabel- en kolomnamen is vereist; het specificeren van de databasenaam en eigenaarnamen is echter optioneel.

text_ptr
Is een geldige tekstverwijzing. text_ptr moet binair zijn(16).

afstand
Is het aantal bytes wanneer de tekst- of afbeeldingsdatatypes worden gebruikt. Het kan ook het aantal bytes voor tekens zijn wanneer het ntext-datatype wordt gebruikt om over te slaan voordat het begint met het lezen van de tekst-, afbeelding- of ntext-gegevens .

grootte Is het aantal bytes wanneer de tekst- of afbeeldingsdatatypes worden gebruikt. Het kan ook het aantal bytes voor tekens zijn wanneer het ntext-datatype wordt gebruikt voor data om te lezen. Als de grootte 0 is, wordt 4 KB aan data gelezen.

HOLDLOCK
Zorgt ervoor dat de tekstwaarde wordt vergrendeld voor reads tot het einde van de transactie. Andere gebruikers kunnen de waarde lezen, maar ze kunnen deze niet aanpassen.

Opmerkingen

Gebruik de TEXTPTR-functie om een geldige text_ptr waarde te verkrijgen. TEXTPTR geeft een pointer terug naar de tekst-, ntext- of afbeeldingskolom in de opgegeven rij. TEXTPRT kan ook een pointer teruggeven of naar de tekst-, ntext- of afbeeldingskolom in de laatste rij die de query teruggeeft als de query meer dan één rij teruggeeft. Omdat TEXTPTR een binaire string van 16 bytes teruggeeft, raden we aan om een lokale variabele aan te duiden die de tekstpointer vasthoudt, en vervolgens de variabele te gebruiken met READTEXT. Voor meer informatie over het declareren van een lokale variabele, zie DECLARE @local_variable (Transact-SQL).

In SQL Server kunnen tekstverwijzingen in de rij bestaan, maar deze zijn mogelijk niet geldig. Voor meer informatie over de optie tekst in rij , zie sp_tableoption (Transact-SQL). Voor meer informatie over het ongeldig maken van tekstverwijzingen, zie sp_invalidate_textptr (Transact-SQL).

De waarde van de @@TEXTSIZE functie overtreft de gespecificeerde grootte voor READTEXT als deze kleiner is dan de gespecificeerde grootte voor READTEXT. De @@TEXTSIZE functie specificeert de limiet voor het aantal teruggegeven databytes, die wordt ingesteld door de SET TEXTSIZE-instructie. Voor meer informatie over hoe je de sessie-instelling voor TEXTSIZE instelt, zie SET TEXTSIZE (Transact-SQL).

Permissions

READTEXT-permissies zijn standaard voor gebruikers die SELECT-rechten hebben op de opgegeven tabel. Rechten zijn overdraagbaar wanneer SELECT-rechten worden overgedragen.

Voorbeelden

Het volgende voorbeeld leest het tweede tot en met het 26e teken van de pr_info kolom in de pub_info tabel.

Opmerking

Om dit voorbeeld te draaien, moet je de pubs-voorbeelddatabase installeren.

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  

Zie ook

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