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

Cómo corregir el mensaje "El servidor no está configurado para RPC" 7411 usando T-SQL

Si ha encontrado el mensaje de error 7411, nivel 16 en SQL Server, es porque necesita habilitar "RPC out" en el servidor vinculado en el que está intentando ejecutar el código.

Ejemplo de código que causa el error

Para mí, ejecutar el siguiente código da como resultado el error Msg 7411.

EXEC Homer.Music.dbo.spAlbumsFromArtist 
    @ArtistName = 'Iron Maiden';

Aquí, estoy tratando de ejecutar un procedimiento almacenado en el servidor vinculado. Pero no tengo habilitado "RPC out" y aparece el siguiente error:

Msg 7411, Level 16, State 1, Line 1
Server 'Homer' is not configured for RPC.

Aunque dice "RPC", significa "RPC fuera".

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 = 'Homer';

Resultado:

+----------------------+
| is_rpc_out_enabled   |
|----------------------|
| 0                    |
+----------------------+

Como era de esperar, no está habilitado.

La solución

El siguiente código habilita la opción "RPC out" para el servidor vinculado:

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

Resultado:

Commands completed successfully.

Gran éxito.

Entonces, si volvemos a verificar nuestra configuración de RPC, ahora debería establecerse en 1 .

Verifique la configuración de salida de RPC

Ejecutemos el código de nuevo.

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

Resultado:

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

¡Perfecto!

Así que ahora deberíamos poder ejecutar el procedimiento almacenado sin recibir el error 7411.

Intente ejecutar nuestro código original de nuevo

Ahora podemos intentar ejecutar el procedimiento almacenado remoto nuevamente y, con suerte, no obtenemos más errores.

EXEC Homer.Music.dbo.spAlbumsFromArtist 
    @ArtistName = 'Iron Maiden';

Resultado:

+-------------------------+---------------+
| AlbumName               | ReleaseDate   |
|-------------------------+---------------|
| Powerslave              | 1984-09-03    |
| Somewhere in Time       | 1986-09-29    |
| Piece of Mind           | 1983-05-16    |
| Killers                 | 1981-02-02    |
| No Prayer for the Dying | 1990-10-01    |
+-------------------------+---------------+

¡Arreglado!