sql >> Database >  >> RDS >> Sqlserver

SQL Server:Hoe een door de gebruiker gedefinieerde functie (UDF) op een gekoppelde server aanroepen?

Om externe procedures op te roepen, moet u RPC OUT op uw Linked Server activeren. Open de eigenschappen van de gekoppelde server in SSMS en klik vervolgens op "Serveroptie" en zorg ervoor dat RPC Out True is.

En...Uw link heeft de oplossing voor uw probleem. Kijk naar de laatste optie in de WorkAround

Hier is een testcase voor u:

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. Geonames-database:een volledige hiërarchie krijgen (land -> admin1 -> admin2 -> stad) met slechts één mysql-query

  2. 7 manieren om dubbele rijen te vinden terwijl u de primaire sleutel in MySQL negeert

  3. Hoe kan ik resultaten krijgen van een JPA-entiteit die op afstand is geordend?

  4. Oracle-query om alle rijen met dezelfde id in een tabel te vergelijken