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

SQL Server:Как да извикам дефинирана от потребителя функция (UDF) на свързан сървър?

За да извикате отдалечени процедури, трябва да активирате RPC OUT на вашия свързан сървър. Отворете свойствата на свързания сървър в SSMS, след което щракнете върху „Опция на сървъра“ и се уверете, че RPC Out е True.

И... Вашата връзка съдържа решението на вашия проблем. Вижте последната опция в WorkAround

Ето един тест за вас:

use master
go
EXEC master.dbo.sp_addlinkedserver @server = N'(LOCAL)', @srvproduct=N'SQL Server';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'(LOCAL)',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL;
EXEC master.dbo.sp_serveroption @server=N'(LOCAL)', @optname=N'rpc out', @optvalue=N'true'
GO
Use Testing
GO
CREATE FUNCTION [dbo].[UserGroupMembershipNames](@UserGUID uniqueidentifier)  
RETURNS VARCHAR(8000)
AS
BEGIN
    RETURN 'hello'
END
GO
select dbo.[UserGroupMembershipNames]('4278E0BF-2F7A-4D60-A09C-95E517E21EBC')
GO
exec [(LOCAL)].Testing.dbo.sp_executesql 
N'select dbo.UserGroupMembershipNames(@UserGUID)',N'@UserGUID uniqueidentifier'
,@UserGUID='4278E0BF-2F7A-4D60-A09C-95E517E21EBC'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е функция с таблично значение в SQL Server?

  2. Защо колоната TEXT връща само 4096 байта?

  3. Забавление с BULK INSERT SQL SERVER - тип несъответствие или невалиден знак за посочената кодова страница

  4. Как да извърша вмъкване и връщане на вмъкната идентичност с Dapper?

  5. Вместо NULL как да покажа `0` в резултат с оператор SELECT sql?