The STUFF function inserts a string into another string. 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.
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. If the start position is 0, a null value is returned. If the length to delete is longer than the first string, it is deleted to the first character in the first string.
An error is raised if the resulting value is larger than the maximum supported by the return type.
Supplementary Characters (Surrogate Pairs)
When using SC collations, both character_expression and replaceWith_expression can include surrogate pairs. The length parameter will count each surrogate in character_expression as a single character.
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
Here is the result set.
--------- aijklmnef (1 row(s) affected)