Понякога може да се наложи да активирате опцията „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 за да превключите тази опция.