SQL Server: Comment appeler une fonction définie par l'utilisateur (UDF) sur le serveur lié?

je suis en train d'appeler une Fonction Définie par l'Utilisateur (UDF) sur un serveur lié:

CREATE FUNCTION [dbo].[UserGroupMembershipNames](@UserGUID uniqueidentifier)  
RETURNS VARCHAR(8000)
AS
BEGIN
    RETURN ASILIVE.ReportManager.dbo.UserGroupMembershipNames(@UserGUID)
END

Cela ne fonctionne pas, comme documenté dans MODÈLE: Utilisateur-Appel de la Fonction Définie en Quatre parties Requête de Serveur Lié Échoue avec le Message d'Erreur 170. Ils donnent également une solution de contournement:

Par exemple, au lieu de la requête suivante

Select * from Linked_Server.northwind.dbo.square_value(10)

l'exécution d'une requête avec la fonction Openquery:

Select * from Openquery(Linked_Server,'select northwind.dbo.square_ value(10)')

Si la fonction définie par l'utilisateur prend variable scalaire ou des paramètres, vous pouvez utiliser la procédure stockée sp_executesql pour éviter ce problème. Par exemple:

exec Linked_Server.northwind.dbo.sp_executesql N'SELECT northwind.dbo.square_value(@input)',N'@input int',@input=10

Comment pourrais-je appliquer cette solution à ma situation, et la situation de ce mec?

En d'autres termes:

Comment appeler une fonction sur un serveur lié?

OriginalL'auteur Ian Boyd | 2010-11-08