ich habe da ein Problem mit einer Volltextabfrage innerhalb einer
Funktion. Es geht um eine Datenbank auf einem anderen Server:
CREATE FUNCTION dbo.Funktion(@Suchtext varchar(100))
RETURNS @Return TABLE
(
Wert int,
)
AS
BEGIN
INSERT INTO @Return (
Wert)
SELECT Wert
FROM LINKEDSERVER.Datenbank.dbo.Tabelle Tabelle
WHERE (CONTAINS(Suchfeld, @Suchtext))
RETURN
END
So erhalte ich die Fehlermeldung
Variablenparameter können nicht an Volltextprädikate übergeben werden:
'contains', 'freetext' und 'functions': 'containstable',
'freetexttable', auf eine Remotetabelle angewandt.
Scheinbar wäre es besser, die Volltextsuche innerhalb der anderen
Datenbank durchzuführen, aber irgendwie weiß ich nicht so richtig, wie
ich das anstellen kann. Zunächst dachte ich daran, die Funktion
dorthin zu verlagern, aber das führte zu der Fehlermeldung
Remoteaufrufe von Tabellenwertfunktionen sind nicht zulässig.
Über eine Prozedur scheint es zu gehen, aber wie kann ich das
Resultset mit Daten aus der eigentlichen Datenbank zusammenführen? Das
folgende funktioniert nicht:
SELECT Wert
FROM dbo.Tabelle
UNION ALL
EXEC LINKEDSERVER.Datenbank.dbo.Prozedur
Gruß,
Matthias