Estoy intentando llamar a una función definida por el usuario (UDF) en un servidor vinculado:Servidor SQL: ¿Cómo llamar a una función definida por el usuario (UDF) en el servidor vinculado?
CREATE FUNCTION [dbo].[UserGroupMembershipNames](@UserGUID uniqueidentifier)
RETURNS VARCHAR(8000)
AS
BEGIN
RETURN ASILIVE.ReportManager.dbo.UserGroupMembershipNames(@UserGUID)
END
Esto no funciona, como se documenta en PRB: User-Defined Function Call in Four-Part Linked Server Query Fails with Error Message 170. También dan una solución:
Por ejemplo, en lugar de la siguiente consulta
Select * from Linked_Server.northwind.dbo.square_value(10)
ejecutar una consulta con la función openquery:
Select * from Openquery(Linked_Server,'select northwind.dbo.square_ value(10)')
Si la función definida por el usuario toma la variable o parámetros escalares, puede usar el procedimiento almacenado sp_executesql para evitar este comportamiento. Por ejemplo:
exec Linked_Server.northwind.dbo.sp_executesql N'SELECT northwind.dbo.square_value(@input)',N'@input int',@input=10
¿cómo iba a aplicar esta solución a mi situación, y la situación de this guy?
En otras palabras:
cómo llamar a una UDF en un servidor vinculado?
Gracias por publicar su respuesta! Asegúrese de leer detenidamente [Preguntas frecuentes sobre autopromoción] (http://stackoverflow.com/faq#promotion). También tenga en cuenta que * se requiere * que publique un descargo de responsabilidad cada vez que se vincula a su propio sitio/producto. He agregado el descargo de responsabilidad requerido en esta publicación. Por favor, no lo olvides en el futuro. –
En realidad, soy un usuario nuevo y tengo un problema de duplicación de cuenta inicialmente. Gracias por su sugerencia, me ocuparé de esto en el futuro. –
no funciona.Msg 558, nivel 16, estado 2, línea 1 Las llamadas a funciones remotas no están permitidas dentro de una función. – Keith