sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan aktiverer du RPC Out ved hjælp af T-SQL

Du skal muligvis lejlighedsvis aktivere "RPC Out"-indstillingen på en forbundet server. Denne mulighed aktiverer RPC til den givne server.

RPC står for Remote Procedure Calls. RPC er dybest set en lagret procedure, der køres eksternt fra Server 1 til forbundet Server 2.

Hvis du ikke aktiverer dette, og du prøver at udføre en lagret procedure på den sammenkædede server, vil du sandsynligvis få fejlmeddelelse 7411, der fortæller dig, at serveren ikke er konfigureret til RPC.

Under alle omstændigheder kan du aktivere/deaktivere denne mulighed enten ved hjælp af SQL Server Management Studio (SSMS) eller med T-SQL.

I SSMS kan du gå til Linked Server Properties ved at højreklikke på den linkede servers navn. Derfra skal du klikke på Server Options , hvor du vil se RPC Out indstilling indstillet til enten True eller False .

I T-SQL kan du bruge sp_serveroption systemlagret procedure for at gøre det samme.

Eksempel

Her er et eksempel på brug af sp_serveroption for at aktivere "RPC Out" på en forbundet server.

EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';

Dette aktiverer RPC Out-indstillingen for den sammenkædede server kaldet MyLinkedServer.

En anden måde at udføre denne procedure på er eksplicit at navngive parameternavnene:

EXEC sp_serveroption 
    @server = 'MyLinkedServer', 
    @optname = 'rpc out', 
    @optvalue = 'on';

Så du kan se, at det første argument (@server ) er navnet på den linkede server, den anden (@optname ) angiver indstillingens navn og det tredje argument (@optvalue ) angiver dens værdi.

Det er alt, hvad der er til det. RPC Out er nu aktiveret på den linkede server.

Tjek RPC-udgangsindstillingen

Vi kan tjekke vores RPC-ud-indstilling med følgende kode.

SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'MyLinkedServer';

Resultat:

+----------------------+
| is_rpc_out_enabled   |
|----------------------|
| 1                    |
+----------------------+

En værdi på 1 betyder, at RPC Out er aktiveret. En værdi på 0 betyder, at den er deaktiveret.

Deaktivering af RPC Out

Du kan bruge false i stedet for true for at deaktivere det.

EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'false';

Udførelse af den kode vil deaktivere RPC Out på MyLinkedServer.

Du kan alternativt bruge on og off i stedet for true og false for at skifte mellem denne indstilling.


  1. Slick 2.0 Generic CRUD operationer

  2. MySQL SIGN() Funktion – Find ud af, om et tal er positivt eller negativt i MySQL

  3. SQL GROUP BY-klausul for begyndere

  4. De brugte SELECT-sætninger har et andet antal kolonner (REDUX!!)