Để gọi các thủ tục từ xa, bạn cần kích hoạt RPC OUT trên Máy chủ được Liên kết của mình. Mở Thuộc tính của Máy chủ được Liên kết trong SSMS, sau đó nhấp vào "Tùy chọn Máy chủ" và đảm bảo RPC Out là True.
Và ... Liên kết của bạn có giải pháp cho vấn đề của bạn. Xem tùy chọn cuối cùng trong Giải pháp thay thế
Đây là một trường hợp thử nghiệm dành cho bạn:
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'