Du kan ibland behöva aktivera alternativet "RPC Out" på en länkad server. Detta alternativ aktiverar RPC till den givna servern.
RPC står för Remote Procedure Calls. RPC är i grunden en lagrad procedur som körs på distans från Server 1 till länkad Server 2.
Om du inte aktiverar detta och du försöker köra en lagrad procedur på den länkade servern, kommer du förmodligen att få felmeddelande 7411 som talar om att servern inte är konfigurerad för RPC.
Hur som helst, du kan aktivera/avaktivera det här alternativet antingen med SQL Server Management Studio (SSMS) eller med T-SQL.
I SSMS kan du gå till Linked Server Properties
genom att högerklicka på den länkade serverns namn. Därifrån klickar du på Server Options
, där du ser RPC Out
alternativet satt till antingen True
eller False
.
I T-SQL kan du använda sp_serveroption
systemlagrad procedur för att göra samma sak.
Exempel
Här är ett exempel på hur du använder sp_serveroption
för att aktivera "RPC Out" på en länkad server.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';
Detta aktiverar alternativet RPC Out för den länkade servern som heter MyLinkedServer.
Ett annat sätt att utföra denna procedur är att uttryckligen namnge parameternamnen:
EXEC sp_serveroption
@server = 'MyLinkedServer',
@optname = 'rpc out',
@optvalue = 'on';
Så du kan se att det första argumentet (@server
) är namnet på den länkade servern, den andra (@optname
) anger alternativnamnet och det tredje argumentet (@optvalue
) anger dess värde.
Det är allt som finns. RPC Out är nu aktiverat på den länkade servern.
Kontrollera inställningen för RPC-utgång
Vi kan kontrollera vår RPC-ut-inställning med följande kod.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'MyLinkedServer';
Resultat:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 1 | +----------------------+
Ett värde på 1
betyder att RPC Out är aktiverat. Ett värde på 0
betyder att den är inaktiverad.
Inaktivera RPC Out
Du kan använda false
istället för true
för att inaktivera den.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'false';
Om du kör den koden inaktiveras RPC Out på MyLinkedServer.
Du kan alternativt använda on
och off
istället för true
och false
för att växla det här alternativet.