Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como corrigir "O servidor não está configurado para RPC" Msg 7411 usando T-SQL


Se você encontrou o erro Msg 7411, Level 16 no SQL Server, é porque você precisa habilitar “RPC out” no servidor vinculado no qual você está tentando executar o código.

Exemplo de código que causa o erro


Para mim, a execução do código a seguir resulta no erro Msg 7411.
EXEC Homer.Music.dbo.spAlbumsFromArtist 
    @ArtistName = 'Iron Maiden'; 

Aqui, estou tentando executar um procedimento armazenado no servidor vinculado. Mas eu não tenho “RPC out” habilitado e então recebo o seguinte erro:
Msg 7411, Level 16, State 1, Line 1Server 'Homer' não está configurado para RPC.

Mesmo que leia “RPC”, significa “RPC out”.

Verifique a configuração de saída RPC


Podemos verificar nossa configuração de saída de RPC com o código a seguir.
SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer'; 

Resultado:
+----------------------+| is_rpc_out_enabled ||---------------------------------|| 0 |+----------------------+

Como esperado, não está ativado.

A solução


O código a seguir habilita a opção “RPC out” para o servidor vinculado:
EXEC sp_serveroption 'Homer', 'rpc out', 'true'; 

Resultado:
Comandos concluídos com sucesso.

Grande sucesso.

Portanto, se verificarmos nossa configuração de saída de RPC novamente, ela deverá ser definida como 1 .

Verifique a configuração de saída RPC


Vamos executar o código novamente.
SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer'; 

Resultado:
+----------------------+| is_rpc_out_enabled ||---------------------------------|| 1 |+----------------------+

Perfeito!

Portanto, agora devemos ser capazes de executar o procedimento armazenado sem obter o erro 7411.

Tente executar nosso código original novamente


Agora podemos tentar executar o procedimento armazenado remoto novamente e esperamos não receber mais erros.
EXEC Homer.Music.dbo.spAlbumsFromArtist 
    @ArtistName = 'Iron Maiden'; 

Resultado:
+-------------------------+---------------+| Nome do álbum | ReleaseDate ||-------------------------+---------------|| Powerslave | 03-09-1984 || Em algum lugar no tempo | 29-09-1986 || Pedaço de Mente | 16-05-1983 || Assassinos | 02-02-1981 || Nenhuma oração pelos moribundos | 1990-10-01 |+-------------------------+---------------+ 
Fixo!