sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan rettes "Serveren er ikke konfigureret til RPC" Msg 7411 ved hjælp af T-SQL

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!


  1. PLSQL JDBC:Hvordan får man sidste række-id?

  2. Sådan kører du et SQL Server Agent Job ved hjælp af T-SQL

  3. SQL - Call Stored Procedure for hver post

  4. Hold udbredelse altid aktiveret i Oracle Streams