Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Impossible de trouver la colonne "dbo" ou la fonction définie par l'utilisateur ou l'agrégat "dbo.FN_Split", ou le nom est ambigu

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.