Ich versuche, eine benutzerdefinierte Funktion (UDF) auf einem Verbindungsserver aufzurufen:
%Vor%Dies funktioniert nicht, wie in PRB: Benutzerdefinierter Funktionsaufruf in Vier-Komponenten-Verbindungsserver-Abfrage mit Fehlermeldung fehlgeschlagen wird 170 . Sie geben auch einen Workaround:
Zum Beispiel anstelle der folgenden Abfrage
%Vor%Führen Sie eine Abfrage mit der OpenQuery-Funktion aus:
%Vor%Wenn die benutzerdefinierte Funktion variable oder skalare Parameter verwendet, können Sie die gespeicherte Prozedur sp_executesql verwenden, um dieses Verhalten zu vermeiden. Zum Beispiel:
%Vor%
Wie würde ich diese Problemumgehung auf meine Situation und die Situation von diesem Typ anwenden?
Mit anderen Worten:
So rufen Sie eine benutzerdefinierte Funktion auf einem Verbindungsserver auf:
Um entfernte Prozeduren aufzurufen, müssen Sie RPC OUT auf Ihrem Verbindungsserver aktivieren. Öffnen Sie die Eigenschaften des Verbindungsservers in SSMS, klicken Sie auf "Serveroption" und vergewissern Sie sich, dass RPC Out True ist.
Und ... Ihr Link hat die Lösung für Ihr Problem. Sehen Sie sich die letzte Option in WorkAround an
"exec Linked_Server.northwind.dbo.sp_executesql N'SELECT northwind.dbo.square_value (@input) ', N' @ Eingabe int ', @ Eingabe = 10 "
Hier ist ein Testfall für Sie:
%Vor%Sieh diesen Link an, was mein Blog ist :
Einfache Details des obigen Links sind die folgenden Funktionen.
%Vor%Tags und Links sql-server user-defined-functions sql-server-2000 linked-server