sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo habilitar la salida RPC usando T-SQL

Ocasionalmente, es posible que deba habilitar la opción "RPC Out" en un servidor vinculado. Esta opción habilita RPC para el servidor dado.

RPC significa llamadas a procedimiento remoto. RPC es básicamente un procedimiento almacenado que se ejecuta de forma remota desde el Servidor 1 al Servidor 2 vinculado.

Si no habilita esto e intenta ejecutar un procedimiento almacenado en el servidor vinculado, probablemente obtendrá el mensaje de error 7411 que le indicará que el servidor no está configurado para RPC.

De todos modos, puede habilitar/deshabilitar esta opción usando SQL Server Management Studio (SSMS) o con T-SQL.

En SSMS, puede ir a Linked Server Properties haciendo clic derecho en el nombre del servidor vinculado. Desde allí, haga clic en Server Options , donde verá el RPC Out opción establecida en True o False .

En T-SQL puede usar sp_serveroption procedimiento almacenado del sistema para hacer lo mismo.

Ejemplo

Aquí hay un ejemplo del uso de sp_serveroption para habilitar "RPC Out" en un servidor vinculado.

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

Esto habilita la opción RPC Out para el servidor vinculado llamado MyLinkedServer.

Otra forma de ejecutar este procedimiento es nombrar explícitamente los nombres de los parámetros:

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

Entonces puede ver que el primer argumento (@server ) es el nombre del servidor vinculado, el segundo (@optname ) especifica el nombre de la opción y el tercer argumento (@optvalue ) especifica su valor.

Eso es todo al respecto. RPC Out ahora está habilitado en el servidor vinculado.

Comprobar la configuración de salida de RPC

Podemos verificar nuestra configuración de salida de RPC con el siguiente código.

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

Resultado:

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

Un valor de 1 significa que RPC Out está habilitado. Un valor de 0 significa que está deshabilitado.

Desactivación de salida RPC

Puedes usar false en lugar de true para deshabilitarlo.

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

Ejecutar ese código deshabilitará RPC Out en MyLinkedServer.

Alternativamente, puede usar on y off en lugar de true y false para alternar esta opción.