Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak naprawić komunikat „Serwer nie jest skonfigurowany dla RPC” Msg 7411 przy użyciu T-SQL?

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!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź najbliższą datę w SQL Server

  2. 3 sposoby zwracania wierszy zawierających znaki alfanumeryczne w SQL Server

  3. Jak sprawdzić, czy wyliczona kolumna jest „utrwalona” w SQL Server?

  4. Jak ustawić wartość logiczną w SQL?

  5. Wygeneruj losową wartość int od 3 do 6