sql >> Database >  >> RDS >> Sqlserver

Hoe te repareren "Server is niet geconfigureerd voor RPC" Msg 7411 met behulp van T-SQL

Als u foutbericht 7411, niveau 16 in SQL Server bent tegengekomen, komt dat omdat u "RPC out" moet inschakelen op de gekoppelde server waarop u code probeert uit te voeren.

Voorbeeld van code die de fout veroorzaakt

Voor mij resulteert het uitvoeren van de volgende code in de Msg 7411-fout.

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

Hier probeer ik een opgeslagen procedure uit te voeren op de gekoppelde server. Maar ik heb "RPC out" niet ingeschakeld en dus krijg ik de volgende foutmelding:

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

Ook al staat er "RPC", het betekent "RPC uit".

Controleer de RPC Out-instelling

We kunnen onze RPC-out-instelling controleren met de volgende code.

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

Resultaat:

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

Zoals verwacht is het niet ingeschakeld.

De oplossing

De volgende code activeert de optie "RPC out" voor de gekoppelde server:

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

Resultaat:

Commands completed successfully.

Groot succes.

Dus als we onze RPC-out-instelling opnieuw controleren, zou deze nu moeten worden ingesteld op 1 .

Controleer de RPC Out-instelling

Laten we de code opnieuw uitvoeren.

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

Resultaat:

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

Perfect!

Dus we zouden nu in staat moeten zijn om de opgeslagen procedure uit te voeren zonder de 7411-fout te krijgen.

Probeer onze originele code opnieuw uit te voeren

Nu kunnen we proberen de op afstand opgeslagen procedure opnieuw uit te voeren, en hopelijk krijgen we geen fouten meer.

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

Resultaat:

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

Opgelost!


  1. Is het mogelijk om vergrendeling op rijniveau in SQL Server te forceren?

  2. Gids voor het ontwerpen van een database voor een sociaal netwerksysteem in MySQL

  3. Een opgeslagen procedure plannen in MySQL

  4. Hoe kan ik een veld van mijn spinner bijwerken met gebruikersinvoer in EditText