Tout d'abord, assurez-vous d'avoir exécuté le script de création dans la bonne base de données.
Deuxièmement, comme @astander a commencé à le mentionner, vous utilisez les résultats de la fonction de manière incorrecte.
Votre fonction renvoie une table, pas une valeur. Vous devrez exécuter la fonction dans le cadre de vos instructions SQL, et non lors de la création de requêtes ad hoc. Par exemple, ce code :
set @[email protected]+'UNION select items from'+ dbo.FN_Split(@p_SourceText,
@p_Delimeter)+' where orderId ='[email protected]+')'
deviendrait :
set @sql = @sql+'UNION select items from dbo.FN_Split(' + @p_SourceText +', ' +
@p_Delimeter + ') where orderId =' + @i + ')'
Apportez des modifications similaires partout où vous faites actuellement référence à la fonction.