MSSQL Tabellenname an eine Funktion übergeben
Hallo Amins,
ich komme mal wieder nicht weiter und hoffe auf eure Hilfe.
Ist es möglich an eine Funktion einen Tabellenamen zu übergeben? In einer Tabelle, deren Name sich je nach User ändert, sind Werte gespeichert. Diese Werte müssen in der Funktion verarbeitet werden. Ich habe keine Lösung gefunden den Wert zu übergeben. Als Variable des Typs table geht nicht, da die Funktion diesen Typ nicht zu lässt. Als varchar geht zwar dann bringe ich aber in der Funktion das Select nicht hin, da select * from @variable nicht funktioniert und exec('select * from ' + @variable) in der Funktion auch nicht erlaubt ist.
Ich muss die Tabelle an mehrere unterschiedliche Funktionen übergeben.
Danke für euer Hilfe.
Gruß Joni
ich komme mal wieder nicht weiter und hoffe auf eure Hilfe.
Ist es möglich an eine Funktion einen Tabellenamen zu übergeben? In einer Tabelle, deren Name sich je nach User ändert, sind Werte gespeichert. Diese Werte müssen in der Funktion verarbeitet werden. Ich habe keine Lösung gefunden den Wert zu übergeben. Als Variable des Typs table geht nicht, da die Funktion diesen Typ nicht zu lässt. Als varchar geht zwar dann bringe ich aber in der Funktion das Select nicht hin, da select * from @variable nicht funktioniert und exec('select * from ' + @variable) in der Funktion auch nicht erlaubt ist.
Ich muss die Tabelle an mehrere unterschiedliche Funktionen übergeben.
Danke für euer Hilfe.
Gruß Joni
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 25.03.2012 um 17:53:34 Uhr
So wie auch meine Funktion IncreaseRGC()
Demo:
SELECT IncreaseRGC()
#806
Demo:
SELECT IncreaseRGC()
#806
Content-ID: 179215
Url: https://administrator.de/forum/mssql-tabellenname-an-eine-funktion-uebergeben-179215.html
Ausgedruckt am: 23.12.2024 um 11:12 Uhr
6 Kommentare
Neuester Kommentar
Moin Moin
Da du nxclass "Wink mit dem Zaunpfahl" nicht verstanden hast...
1. Um was für ein Datenbank system handelt es sich und welche Version?
2. Was soll deine "Funktion" leisten bzw. zurückgeben?
Das Ergebnis von SELECT * FROM Warsauchimmer ist als rückgabewert für eine Funktion kaum zu gebrauchen.
Gruß L.
Da du nxclass "Wink mit dem Zaunpfahl" nicht verstanden hast...
1. Um was für ein Datenbank system handelt es sich und welche Version?
2. Was soll deine "Funktion" leisten bzw. zurückgeben?
Das Ergebnis von SELECT * FROM Warsauchimmer ist als rückgabewert für eine Funktion kaum zu gebrauchen.
Gruß L.
Moin Joni
Ich möchte deine Kreativität nicht bremsen; aber "Usertabellen", wie ....
Was immer darin gespeichert wird kommt in eine Tabelle mit statischem Namen und diese enthält ein Feld Username das entsprechend gefüllt wird.
Soviel zum DB Design. Zurück zur Funktion:
Funktionen geben klar bennante Werte zurück. Ganze Tabellen oder ErgebnisSets sind laut Dokumentation nicht zulässig (und machen auch keinen Sinn).
Kann es sein das du keine Funktion meinst, sonderen eine "gespeicherte Prozedur"?
Denn dann klappt auch ....
Gruß L.
Ich möchte deine Kreativität nicht bremsen; aber "Usertabellen", wie ....
In einer Tabelle, deren Name sich je nach User ändert ...
sind (entschuldige den Ausdruck) Dreck.Was immer darin gespeichert wird kommt in eine Tabelle mit statischem Namen und diese enthält ein Feld Username das entsprechend gefüllt wird.
Soviel zum DB Design. Zurück zur Funktion:
Funktionen geben klar bennante Werte zurück. Ganze Tabellen oder ErgebnisSets sind laut Dokumentation nicht zulässig (und machen auch keinen Sinn).
Kann es sein das du keine Funktion meinst, sonderen eine "gespeicherte Prozedur"?
Denn dann klappt auch ....
exec('select * from ' + @variable)
Gruß L.