Partager via


Utilisation de types de données de valeur élevée

Le spécificateur max étend les capacités de stockage des types de données varchar, nvarchar et varbinary. varchar(max), nvarchar(max), and varbinary(max) sont collectivement appelés types de données de valeur élevée. Les types de données de valeur élevée permettent de stocker jusqu'à 2^31-1 octets de données.

[!REMARQUE]

Lorsque l'option large value types out of row de la procédure stockée sp_tableoption est désactivée (valeur OFF), la capacité de stockage au niveau de la ligne est limitée à 8 000 octets pour les types de données de valeur élevée. Une racine de 16 octets est stockée dans la ligne lorsque cette option est activée (valeur ON). Pour plus d'informations, consultez sp_tableoption (Transact-SQL).

Les types de données de valeur élevée affichent un comportement similaire à celui de leurs homologues plus petits, à savoir, varcharnvarchar et varbinary. Cette similarité permet à SQL Server de stocker et de récupérer les données avec davantage d'efficacité, qu'elles soient de type Unicode, binaire ou constituées de caractères volumineux.

Les types de données de valeur élevée de SQL Server vous offrent des possibilités inédites par rapport aux types de données textntext et image des versions antérieures de SQL Server. Vous pouvez définir des variables qui permettent de stocker de grandes quantités de données, jusqu'à 2^31 octets de données de type caractère, binaire et Unicode. Pour plus d'informations, consultez Variables Transact-SQL.

Le tableau suivant décrit la relation entre les types de données de valeur élevée et leurs équivalents des versions antérieures de SQL Server.

Types de données de valeur élevée

Type de données LOB des versions antérieures

varchar(max)

text*

nvarchar(max)

ntext*

varbinary(max)

image

* Les clients SQL Server version 6.5 ne prenant pas en charge le type de données ntext, ils ne reconnaissent donc pas nvarchar(max).

Important

Utilisez les types de données varchar(max), nvarchar(max) et varbinary(max) à la place des types de données text, ntext et image.

Les types de données de valeur élevée affichent le même comportement que leurs homologues plus petits, c'est-à-dire, varchar(n), nvarchar(n), varbinary(n). Vous trouverez ci-dessous une description des types de données de valeur élevée tels qu'ils sont utilisés dans certains scénarios particuliers :

  • Curseurs

    Étant donné qu'il est possible de définir des variables de types de données de valeur élevée, les colonnes de ce type relevant d'une instruction FETCH peuvent être intégrées à des variables locales. Pour plus d'informations, consultez FETCH (Transact-SQL).

    L'utilisation de types de données de valeur élevée n'affecte pas l'utilisation de curseur forçant la conversion du type de curseur.

  • Mises à jour segmentées

    L'instruction UPDATE peut désormais prendre en charge une clause **.**WRITE( ) dans le cadre des mises à jour partielles des colonnes sous-jacentes de données de valeur élevée. Cela équivaut aux opérations de pointeur de texte, WRITETEXT et UPDATETEXT, prises en charge par les types de données text, ntext, image dans les versions antérieures de SQL Server. Pour plus d'informations, consultez UPDATE (Transact-SQL).

  • Déclencheurs

    Les déclencheurs AFTER sont autorisés dans les références aux colonnes de types de données de valeur élevée dans les tables inserted et deleted. Pour plus d'informations, consultez CREATE TRIGGER (Transact-SQL).

  • Fonctions de chaîne

    Les fonctions de chaîne intégrées applicables aux données de type caractère ou binaire ont été améliorées afin de prendre en charge les types de données de valeur élevée en tant qu'arguments. Il s'agit des fonctions suivantes :

    Pour plus d'informations sur les fonctions de chaîne, consultez Fonctions de chaîne (Transact-SQL).