READTEXT (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure

Legge i valori di tipo text, ntext o image da una colonna di tipo text, ntext o image. Legge il numero di byte specificato a partire dall'offset indicato.

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece la funzione SUBSTRING .

Convenzioni di sintassi Transact-SQL

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

table.column
Nome di una tabella e di una colonna in cui leggere i valori. I nomi delle tabelle e delle colonne devono rispettare le regole relative agli identificatori. È necessario specificare i nomi della tabella e della colonna, mentre il nome del database e il nome del proprietario sono facoltativi.

text_ptr
Puntatore di testo valido. text_ptr deve essere binary(16).

offset
Se viene usato il tipo di dati text o image, è il numero di byte. Se viene usato il tipo di dati ntext, può anche essere il numero di byte di caratteri da ignorare prima di iniziare la lettura dei dati text, image o ntext.

size è il numero di byte se viene usato il tipo di dati text o image. Se viene usato il tipo di dati ntext, può anche essere il numero di byte di caratteri dei dati da leggere. Se size è 0, vengono letti 4 KB di dati.

HOLDLOCK
Impedisce la lettura del valore del testo fino alla fine della transazione. Gli altri utenti possono leggere il valore, ma non modificarlo.

Osservazioni:

Usare la funzione TEXTPTR per ottenere un valore text_ptr valido. TEXTPTR restituisce un puntatore alla colonna di tipo text, ntext o image nella riga specificata. TEXTPRT può anche restituire un puntatore alla colonna di tipo text, ntext o image nell'ultima riga restituita dalla query, se la query restituisce più righe. Poiché TEXTPTR restituisce una stringa binaria di 16 byte, è consigliabile dichiarare una variabile locale in cui archiviare il puntatore di testo e utilizzare quindi la variabile con l'istruzione READTEXT. Per altre informazioni sulla dichiarazione di una variabile locale, vedere DECLARE @local_variable (Transact-SQL).

In SQL Server i puntatori di testo all'interno di righe possono esistere, ma possono essere non validi. Per altre informazioni sull'opzione text in row, vedere sp_tableoption (Transact-SQL). Per altre informazioni su come invalidare i puntatori di testo, vedere sp_invalidate_textptr (Transact-SQL).

Il valore della funzione @@TEXTSIZE prevale sulle dimensioni specificate per READTEXT se è minore. La funzione @@TEXTSIZE specifica il limite per il numero di byte di dati restituito che viene impostato dall'istruzione SET TEXTSIZE. Per altre informazioni sull'impostazione della sessione per la funzione TEXTSIZE, vedere SET TEXTSIZE (Transact-SQL).

Autorizzazioni

Le autorizzazioni per l'istruzione READTEXT vengono assegnate per impostazione predefinita agli utenti con autorizzazioni SELECT per la tabella specificata. Le autorizzazioni sono trasferibili, ovvero vengono trasferite insieme alle autorizzazioni SELECT.

Esempi

L'esempio seguente legge dal secondo al 26° carattere della colonna pr_info della tabella pub_info.

Nota

Per eseguire questo esempio, è necessario installare il database di esempio 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  

Vedi anche

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