Понякога може да се наложи да активирате опцията „RPC Out“ на свързан сървър. Тази опция позволява RPC към дадения сървър.
RPC означава отдалечени повиквания на процедури. RPC е основно съхранена процедура, която се изпълнява дистанционно от сървър 1 към свързан сървър 2.
Ако не активирате това и се опитате да изпълните съхранена процедура на свързания сървър, вероятно ще получите съобщение за грешка 7411, което ви казва, че сървърът не е конфигуриран за RPC.
Както и да е, можете да активирате/деактивирате тази опция или чрез SQL Server Management Studio (SSMS) или с T-SQL.
В SSMS можете да отидете на Linked Server Properties
като щракнете с десния бутон върху името на свързания сървър. От там щракнете върху Server Options
, където ще видите RPC Out
опция, зададена на True
или False
.
В T-SQL можете да използвате sp_serveroption
системна съхранена процедура, за да направи същото.
Пример
Ето пример за използване на sp_serveroption
за да активирате „RPC Out“ на свързан сървър.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';
Това активира опцията RPC Out за свързания сървър, наречен MyLinkedServer.
Друг начин за изпълнение на тази процедура е изрично да наименувате имената на параметрите:
EXEC sp_serveroption
@server = 'MyLinkedServer',
@optname = 'rpc out',
@optvalue = 'on';
Така че можете да видите, че първият аргумент (@server
) е името на свързания сървър, вторият (@optname
) указва името на опцията и третия аргумент (@optvalue
) определя неговата стойност.
Това е всичко. RPC Out вече е активиран на свързания сървър.
Проверете настройката за RPC Out
Можем да проверим нашата настройка за RPC изход със следния код.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'MyLinkedServer';
Резултат:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 1 | +----------------------+
Стойност на 1
означава, че RPC Out е активиран. Стойност 0
означава, че е деактивиран.
Деактивиране на RPC Out
Можете да използвате false
вместо true
за да го деактивирате.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'false';
Изпълнението на този код ще деактивира RPC Out на MyLinkedServer.
Като алтернатива можете да използвате on
и off
вместо true
и false
за да превключите тази опция.