Для вызова удаленных процедур вам необходимо активировать RPC OUT на вашем связанном сервере. Откройте Свойства связанного сервера в SSMS, затем нажмите «Опции сервера» и убедитесь, что RPC Out установлен в True.
И ...
Ваша ссылка имеет решение вашей проблемы. Посмотрите на последний вариант в WorkAround
"exec Linked_Server.northwind.dbo.sp_executesql N'SELECT
northwind.dbo.square_value (@input) ', N' @ input int ', @ input = 10 "
Вот тестовый пример для вас:
use master
go
EXEC master.dbo.sp_addlinkedserver @server = N'(LOCAL)', @srvproduct=N'SQL Server';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'(LOCAL)',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL;
EXEC master.dbo.sp_serveroption @server=N'(LOCAL)', @optname=N'rpc out', @optvalue=N'true'
GO
Use Testing
GO
CREATE FUNCTION [dbo].[UserGroupMembershipNames](@UserGUID uniqueidentifier)
RETURNS VARCHAR(8000)
AS
BEGIN
RETURN 'hello'
END
GO
select dbo.[UserGroupMembershipNames]('4278E0BF-2F7A-4D60-A09C-95E517E21EBC')
GO
exec [(LOCAL)].Testing.dbo.sp_executesql
N'select dbo.UserGroupMembershipNames(@UserGUID)',N'@UserGUID uniqueidentifier'
,@UserGUID='4278E0BF-2F7A-4D60-A09C-95E517E21EBC'