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é !