STUFF (Transact-SQL)

La fonction STUFF permet d'insérer une chaîne dans une autre chaîne. Elle efface d'abord le nombre de caractères spécifié dans la première chaîne à partir de la position de début. Ensuite, elle insère la seconde chaîne dans la première à partir de la position de début.

Icône Lien de rubriqueConventions de syntaxe de Transact-SQL

Syntaxe

STUFF ( character_expression , start , length ,character_expression )

Arguments

  • character_expression
    Expression de données de type caractère. character_expression peut être une constante, une variable ou une colonne de données de type caractère ou binaire.

  • start
    Entier précisant la position de départ de la suppression et de l'insertion. Si start ou length est négatif, une chaîne NULL est retournée. Il en va de même si la valeur start dépasse la longueur de la première character_expression. start peut être de type bigint.

  • length
    Entier spécifiant le nombre de caractères à supprimer. Si la valeur de length est plus longue que la première character_expression, la suppression s'effectue jusqu'au dernier caractère de la dernière character_expression. L'argument length peut être de type bigint.

Types de retour

Retourne des données de type caractère si character_expression correspond à l'un des types de données caractères pris en charge. Retourne des données de type binaire si character_expression correspond à l'un des types de données binaires pris en charge.

Notes

Si la valeur de la position de début ou de la longueur est négative, ou bien si la valeur de la position de début est supérieure à la longueur de la première chaîne, une chaîne NULL est retournée. Si la longueur à effacer est supérieure à celle de la première chaîne, tous les caractères de la première chaîne sont effacés à partir du caractère du début.

Une erreur se produit si la valeur résultante est plus grande que le maximum pris en charge par le type retourné.

Exemple

Dans l'exemple suivant, la procédure retourne une chaîne de caractères créée en supprimant trois caractères de la première chaîne (abcdef) à partir de la position 2 (c'est-à-dire au niveau du b) et en insérant la seconde chaîne au point de suppression.

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

Voici l'ensemble des résultats.

--------- 
aijklmnef 

(1 row(s) affected)