READTEXT (Transact-SQL)
Lit les valeurs text, ntext ou image d'une colonne text, ntext ou image en commençant à la position de décalage spécifiée et en lisant le nombre d'octets indiqué.
Important
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez, à la place, la fonction SUBSTRING.
Syntaxe
READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]
Arguments
table**.**column
Nom de la table et de la colonne dont le contenu doit être lu. Les noms de la table et de la colonne doivent suivre les règles applicables aux identificateurs. Les noms de la table et de la colonne sont obligatoires ; ceux de la base de données et du propriétaire sont facultatifs.text_ptr
Pointeur de texte valide. text_ptr doit être de type binary(16).offset
Nombre d'octets (lorsque les types de données text ou image sont utilisés) ou de caractères (lorsque le type de données ntext est utilisé) à ignorer avant de commencer la lecture des données text, image ou ntext.size
Nombre d'octets (lorsque les types de données text ou image sont utilisés) ou de caractères (lorsque le type de données ntext est utilisé) à lire. Si size a pour valeur 0, 4 Ko de données sont lues.HOLDLOCK
Demande de verrouiller la valeur texte en lecture jusqu'à la fin de la transaction. Les autres utilisateurs peuvent lire la valeur, mais pas la modifier.
Notes
Faites appel à la fonction TEXTPTR pour obtenir une valeur text_ptr valide. Cette fonction retourne un pointeur vers la colonne text, ntext ou image de la ligne spécifiée, ou vers la colonne text, ntext ou image de la dernière ligne retournée si la requête concerne plusieurs lignes. Comme la fonction TEXTPTR retourne une chaîne binaire de 16 octets, il est conseillé de déclarer une variable locale pour stocker le pointeur de texte et utiliser cette variable dans READTEXT. Pour plus d'informations sur la déclaration d'une variable locale, consultez DECLARE @local\_variable (Transact-SQL).
Dans SQL Server, il peut exister des pointeurs de texte dans la ligne non valides. Pour plus d'informations sur l'option text in row, consultez sp_tableoption (Transact-SQL). Pour plus d'informations sur l'invalidation des pointeurs de texte, consultez sp_invalidate_textptr (Transact-SQL).
La valeur de la fonction @@TEXTSIZE remplace la taille indiquée dans READTEXT si elle est inférieure à cette dernière. La fonction @@TEXTSIZE spécifie la limite du nombre d'octets de données à renvoyer, défini au moyen de l'instruction SET TEXTSIZE. Pour plus d'informations sur la définition de ce paramètre de session, consultez SET TEXTSIZE (Transact-SQL).
Autorisations
Les autorisations READTEXT reviennent par défaut aux utilisateurs ayant des autorisations SELECT sur la table indiquée. Ces autorisations peuvent être transférées lorsque les autorisations SELECT sont transférées.
Exemple
L'exemple suivant lit les données du deuxième au vingt-sixième caractères de la colonne pr_info de la table pub_info.
[!REMARQUE]
Pour exécuter cet exemple, vous devez installer l'exemple de base de données pubs. Pour plus d'informations sur l'installation de l'exemple de base de données pubs, consultez Téléchargement des exemples de bases de données Northwind et 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