Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment réparer "Le serveur n'est pas configuré pour RPC" Msg 7411 en utilisant T-SQL

Si vous avez rencontré l'erreur Msg 7411, niveau 16 dans SQL Server, c'est parce que vous devez activer "RPC out" sur le serveur lié sur lequel vous essayez d'exécuter du code.

Exemple de code qui provoque l'erreur

Pour moi, l'exécution du code suivant entraîne l'erreur Msg 7411.

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

Ici, j'essaie d'exécuter une procédure stockée sur le serveur lié. Mais je n'ai pas activé "RPC out" et j'obtiens donc l'erreur suivante :

Msg 7411, Niveau 16, État 1, Ligne 1 Le serveur 'Homer' n'est pas configuré pour RPC.

Même s'il lit "RPC", cela signifie "RPC out".

Vérifiez le paramètre de sortie RPC

Nous pouvons vérifier notre paramètre de sortie RPC avec le code suivant.

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

Résultat :

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

Comme prévu, il n'est pas activé.

La solution

Le code suivant active l'option "RPC out" pour le serveur lié :

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

Résultat :

Commandes terminées avec succès.

Grand succès.

Donc, si nous vérifions à nouveau notre paramètre RPC out, il devrait maintenant être défini sur 1 .

Vérifier le paramètre de sortie RPC

Exécutons à nouveau le code.

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

Résultat :

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

Parfait !

Nous devrions donc maintenant pouvoir exécuter la procédure stockée sans obtenir l'erreur 7411.

Essayez d'exécuter à nouveau notre code d'origine

Nous pouvons maintenant réessayer d'exécuter la procédure stockée à distance, et espérons que nous n'obtiendrons plus d'erreurs.

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

Résultat :

+-------------------------+---------------+| NomAlbum | Date de sortie ||------------------------------+---------------|| Powerslave | 1984-09-03 || Quelque part dans le temps | 1986-09-29 || Tranquillité d'esprit | 1983-05-16 || Tueurs | 1981-02-02 || Pas de prière pour les mourants | 1990-10-01 |+-------------------------+---------------+ 

Corrigé !