Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So beheben Sie „Server ist nicht für RPC konfiguriert“ Msg 7411 mit T-SQL

Wenn in SQL Server die Fehlermeldung 7411, Ebene 16 auftritt, müssen Sie „RPC out“ auf dem Verbindungsserver aktivieren, auf dem Sie versuchen, Code auszuführen.

Beispiel für Code, der den Fehler verursacht

Bei mir führt das Ausführen des folgenden Codes zum Fehler Msg 7411.

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

Hier versuche ich, eine gespeicherte Prozedur auf dem Verbindungsserver auszuführen. Aber ich habe „RPC out“ nicht aktiviert und erhalte daher die folgende Fehlermeldung:

Msg 7411, Level 16, State 1, Line 1
Server 'Homer' is not configured for RPC.

Obwohl dort „RPC“ steht, bedeutet es „RPC aus“.

Überprüfen Sie die RPC-Out-Einstellung

Wir können unsere RPC-Out-Einstellung mit dem folgenden Code überprüfen.

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

Ergebnis:

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

Wie erwartet ist es nicht aktiviert.

Die Lösung

Der folgende Code aktiviert die Option „RPC out“ für den Verbindungsserver:

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

Ergebnis:

Commands completed successfully.

Großer Erfolg.

Wenn wir also unsere RPC-out-Einstellung erneut überprüfen, sollte sie jetzt auf 1 gesetzt sein .

Überprüfen Sie die RPC-Out-Einstellung

Lassen Sie uns den Code erneut ausführen.

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

Ergebnis:

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

Perfekt!

Wir sollten jetzt also in der Lage sein, die gespeicherte Prozedur auszuführen, ohne den Fehler 7411 zu erhalten.

Versuchen Sie erneut, unseren ursprünglichen Code auszuführen

Jetzt können wir versuchen, die gespeicherte Remote-Prozedur erneut auszuführen, und hoffentlich erhalten wir keine weiteren Fehler mehr.

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

Ergebnis:

+-------------------------+---------------+
| 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    |
+-------------------------+---------------+

Behoben!