Primero, asegúrese de ejecutar el script de creación en la base de datos correcta.
En segundo lugar, como @astander comenzó a mencionar, está utilizando los resultados de la función de forma incorrecta.
Su función devuelve una tabla, no un valor. Deberá ejecutar la función como parte de sus instrucciones SQL, no durante la creación de consultas ad hoc. Por ejemplo, este código:
set @[email protected]+'UNION select items from'+ dbo.FN_Split(@p_SourceText,
@p_Delimeter)+' where orderId ='[email protected]+')'
se convertiría en:
set @sql = @sql+'UNION select items from dbo.FN_Split(' + @p_SourceText +', ' +
@p_Delimeter + ') where orderId =' + @i + ')'
Realice cambios similares en todos los lugares donde actualmente hace referencia a la función.