[TSQL] dynamischer Funktionsaufruf

Hallo zusammen,
irgendwie habe ich grade ein Brett vor dem Kopf (hoffe ich).
Ich brauche einen dynamischen Funktionsaufruf.
„Nicht dynamisch“ funktioniert das prima:

SET @Ausgabe = db1.dbo.fnIrgendwas()

Aber wie mache ich das jetzt mit variabler Datenbank?
Also mit @db=‚dbxy‘ ?
Versteht Ihr was ich meine?
Wenn nicht, dann löchert mich!
Liebe Grüße, Fredda

Hallo,

über diesen Umweg funktioniert es, allerdings würde ich diese
Lösung nicht in einem Produktivsystem einsetzen.

dbx.dbo.fnIrgendwas() als String aufzubauen:

declare @string AS VARCHAR(255)
SET @string=‚Select dbx.dbo.fnIrgendwas()‘ (du braucht auf jedenfall eine Skalarfunktion)

Die Tabellenvariable dient als Zwischenspeicher da die Exec-Anweisung nicht direkt einer Variablen zugeordnet werden kann.

DECLARE @erg AS VARCHAR(255)
DECLARE @test TABLE
(TestSpalte VARCHAR(255))

INSERT INTO @Test EXEC(@string)

SET @erg =(SELECT * FROM @Test)

Ja, danke - so funktioniert es. Wäre ich glaube ich so schnell nicht alleine drauf gekommen (mir fehlt da manchmal doch noch etwas die Erfahrung …)
Und keine Sorge, das wird so nicht in einem Produktivsystem landen - dient nur als vorüber gehende Krücke :wink:
Lieben Dank nochmal, Fredda