STUFF (Transact-SQL)STUFF (Transact-SQL)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data Warehouse ouiParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

La fonction STUFF permet d'insérer une chaîne dans une autre chaîne.The STUFF function inserts a string into another string. 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.It deletes a specified length of characters in the first string at the start position and then inserts the second string into the first string at the start position.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

STUFF ( character_expression , start , length , replaceWith_expression )  

ArgumentsArguments

character_expressioncharacter_expression
Est un expression des données de caractères.Is an expression of character data. character_expression peut être une constante, une variable ou une colonne de données binaire ou caractère.character_expression can be a constant, variable, or column of either character or binary data.

Démarrerstart
Entier précisant la position de départ de la suppression et de l'insertion.Is an integer value that specifies the location to start deletion and insertion. Si Démarrer est un nombre négatif ou égal à zéro, une chaîne null est retournée.If start is negative or zero, a null string is returned. Si Démarrer est plus longue que la première character_expression, une chaîne null est retournée.If start is longer than the first character_expression, a null string is returned. Démarrer peut être de type bigint.start can be of type bigint.

lengthlength
Entier spécifiant le nombre de caractères à supprimer.Is an integer that specifies the number of characters to delete. Si longueur est négatif, une chaîne null est retournée.If length is negative, a null string is returned. Si longueur est plus longue que la première character_expression, suppression s’effectue jusqu’au dernier caractère de la dernière character_expression.If length is longer than the first character_expression, deletion occurs up to the last character in the last character_expression. Si longueur est égal à zéro, d’insertion se produit avant le premier caractère dans la chaîne.If length is zero, insertion occurs before the first character in the string. longueur peut être de type bigint.length can be of type bigint.

replaceWith_expressionreplaceWith_expression
Est un expression des données de caractères.Is an expression of character data. character_expression peut être une constante, une variable ou une colonne de données binaire ou caractère.character_expression can be a constant, variable, or column of either character or binary data. Cette expression remplace longueur caractères de character_expression commençant à Démarrer.This expression replaces length characters of character_expression beginning at start. Fournissant NULL comme le replaceWith_expression, supprime les caractères sans insérer quoi que ce soit.Providing NULL as the replaceWith_expression, removes characters without inserting anything.

Types de retourReturn Types

Données de type caractère si character_expression est un des types de données caractères pris en charge.Returns character data if character_expression is one of the supported character data types. Retourne des données binaires si character_expression est un des types de données binaires pris en charge.Returns binary data if character_expression is one of the supported binary data types.

NotesRemarks

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.If the start position or the length is negative, or if the starting position is larger than length of the first string, a null string is returned. Si la position de départ est 0, une valeur NULL est retournée.If the start position is 0, a null value is returned. 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.If the length to delete is longer than the first string, it is deleted to the first character in the first string.

Une erreur se produit si la valeur résultante est plus grande que le maximum pris en charge par le type retourné.An error is raised if the resulting value is larger than the maximum supported by the return type.

Caractères supplémentaires (paires de substitution)Supplementary Characters (Surrogate Pairs)

Lors de l’utilisation de classements SC, les deux character_expression et replaceWith_expression peuvent inclure des paires de substitution.When using SC collations, both character_expression and replaceWith_expression can include surrogate pairs. Le paramètre de longueur compte chaque caractère de substitution character_expression comme un caractère unique.The length parameter counts each surrogate in character_expression as a single character.

ExemplesExamples

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.The following example returns a character string created by deleting three characters from the first string, abcdef, starting at position 2, at b, and inserting the second string at the deletion point.

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

Voici l'ensemble des résultats.Here is the result set.

---------   
aijklmnef   

(1 row(s) affected)  

Voir aussiSee Also

Types de données (Transact-SQL) Data Types (Transact-SQL)
Fonctions de chaîne ( Transact-SQL )String Functions (Transact-SQL)