sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man aktiverar RPC Out med T-SQL

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.


  1. SQL Server Infoga Exempel

  2. Fånga exekveringsplanvarningar med utökade händelser

  3. Kontrollera om databasen finns i PostgreSQL med hjälp av skal

  4. MySQL BESTÄLLNING EFTER IN()