Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да коригирате „Сървърът не е конфигуриран за RPC“ Msg 7411 с помощта на T-SQL

Ако сте срещнали грешка Msg 7411, ниво 16 в SQL Server, това е, защото трябва да активирате „RPC out“ на свързания сървър, на който се опитвате да изпълните код.

Пример за код, който причинява грешката

За мен изпълнението на следния код води до грешка Msg 7411.

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

Тук се опитвам да изпълня съхранена процедура на свързания сървър. Но нямам активиран „RPC out“ и така получавам следната грешка:

Съобщение 7411, ниво 16, състояние 1, ред 1 Сървърът „Homer“ не е конфигуриран за RPC.

Въпреки че пише „RPC“, това означава „RPC out“.

Проверете настройката за RPC Out

Можем да проверим нашата настройка за RPC изход със следния код.

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

Резултат:

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

Както се очакваше, не е активирано.

Решението

Следният код активира опцията „RPC out“ за свързания сървър:

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

Резултат:

Командите са завършени успешно.

Голям успех.

Така че, ако проверим отново нашата настройка за RPC за извеждане, тя трябва да бъде настроена на 1 .

Проверете настройката за RPC изход

Нека стартираме кода отново.

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

Резултат:

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

Перфектно!

Така че вече трябва да можем да стартираме съхранената процедура, без да получаваме грешка 7411.

Опитайте да стартирате нашия оригинален код отново

Сега можем да опитаме да изпълним отново отдалечената съхранена процедура и да се надяваме, че няма да получим повече грешки.

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

Резултат:

+------------------------+--------------+| Име на албум | Дата на издаване ||-----------------------+--------------|| Powerslave | 1984-09-03 || Някъде във времето | 29.09.1986 || Част от ума | 16.05.1983 || Убийци | 1981-02-02 || Без молитва за умиращите | 01.10.1990 г. |+-----------------------+--------------+ 

Поправено!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте FILEGROUP_ID(), за да върнете идентификатора на файлова група в SQL Server

  2. Как да генерирате изявления за вмъкване от текстови файлове за таблица на SQL Server в SQL Server - SQL Server / TSQL урок, част 106

  3. Техническо сравнение:Microsoft Access 2016 срещу SQL Server 2016

  4. Масово вмъкване на файлове с данни в SQL Server

  5. SIGN() Примери в SQL Server