Jeśli napotkałeś błąd Msg 7411, poziom 16 w SQL Server, to dlatego, że musisz włączyć „Wyjście RPC” na połączonym serwerze, na którym próbujesz wykonać kod.
Przykład kodu, który powoduje błąd
Dla mnie uruchomienie następującego kodu powoduje błąd Msg 7411.
EXEC Homer.Music.dbo.spAlbumsFromArtist
@ArtistName = 'Iron Maiden';
Tutaj próbuję wykonać procedurę składowaną na serwerze połączonym. Ale nie mam włączonej opcji „Wyjście RPC”, więc pojawia się następujący błąd:
Msg 7411, Level 16, State 1, Line 1 Server 'Homer' is not configured for RPC.
Mimo że brzmi „RPC”, oznacza to „Wyjście RPC”.
Sprawdź ustawienie wyjścia RPC
Możemy sprawdzić nasze ustawienie RPC out za pomocą następującego kodu.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer';
Wynik:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 0 | +----------------------+
Zgodnie z oczekiwaniami nie jest włączony.
Rozwiązanie
Poniższy kod włącza opcję „Wyjście RPC” dla połączonego serwera:
EXEC sp_serveroption 'Homer', 'rpc out', 'true';
Wynik:
Commands completed successfully.
Wielkim sukcesem.
Jeśli więc ponownie sprawdzimy nasze ustawienie RPC out, powinno być teraz ustawione na 1
.
Sprawdź ustawienie wyjścia RPC
Uruchommy kod ponownie.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer';
Wynik:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 1 | +----------------------+
Idealnie!
Powinniśmy więc teraz móc uruchomić procedurę składowaną bez uzyskania błędu 7411.
Spróbuj ponownie uruchomić nasz oryginalny kod
Teraz możemy spróbować ponownie wykonać zdalną procedurę składowaną i miejmy nadzieję, że nie otrzymamy więcej błędów.
EXEC Homer.Music.dbo.spAlbumsFromArtist
@ArtistName = 'Iron Maiden';
Wynik:
+-------------------------+---------------+ | 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 | +-------------------------+---------------+
Naprawiono!