Hvis du har stødt på fejlmeddelelse 7411, niveau 16 i SQL Server, er det fordi du skal aktivere "RPC out" på den sammenkædede server, som du forsøger at udføre kode på.
Eksempel på kode, der forårsager fejlen
For mig resulterer kørsel af følgende kode i Msg 7411-fejlen.
EXEC Homer.Music.dbo.spAlbumsFromArtist
@ArtistName = 'Iron Maiden';
Her forsøger jeg at udføre en lagret procedure på den linkede server. Men jeg har ikke "RPC out" aktiveret, så jeg får følgende fejl:
Msg 7411, Level 16, State 1, Line 1 Server 'Homer' is not configured for RPC.
Selvom der står "RPC", betyder det "RPC ud".
Tjek RPC-udgangsindstillingen
Vi kan tjekke vores RPC-ud-indstilling med følgende kode.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer';
Resultat:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 0 | +----------------------+
Som forventet er den ikke aktiveret.
Løsningen
Følgende kode aktiverer muligheden "RPC out" for den sammenkædede server:
EXEC sp_serveroption 'Homer', 'rpc out', 'true';
Resultat:
Commands completed successfully.
Stor succes.
Så hvis vi tjekker vores RPC-ud-indstilling igen, skal den nu sættes til 1
.
Bekræft RPC-udgangsindstillingen
Lad os køre koden igen.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'Homer';
Resultat:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 1 | +----------------------+
Perfekt!
Så vi skulle nu være i stand til at køre den lagrede procedure uden at få fejlen 7411.
Prøv at køre vores originale kode igen
Nu kan vi prøve at udføre den fjernlagrede procedure igen, og forhåbentlig får vi ikke flere fejl.
EXEC Homer.Music.dbo.spAlbumsFromArtist
@ArtistName = 'Iron Maiden';
Resultat:
+-------------------------+---------------+ | 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 | +-------------------------+---------------+
Rettet!