Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Biber am 25.03.2012 um 17:53:34 Uhr
Zitat von Logan000:
Funktionen geben klar bennante Werte zurück.
So wie auch meine Funktion IncreaseRGC()
Demo:
SELECT IncreaseRGC()
#806
GELÖST

MSSQL Tabellenname an eine Funktion übergeben

Frage Entwicklung Datenbanken

Mitglied: joni2000de

joni2000de (Level 1) - Jetzt verbinden

19.01.2012, aktualisiert 25.03.2012, 4416 Aufrufe, 6 Kommentare

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
Mitglied: nxclass
19.01.2012 um 23:39 Uhr
Übergebe es als VARCHAR - baue mit CONCAT ein funktionierenden SQL String zusammen - jetzt kannst Du diesen in einem PREPARE .. EXECUTE Statement benutzen.

EDIT - das geht jedenfalls in MySql - hab das wiedermal überlesen, dass es um MSSql geht
Bitte warten ..
Mitglied: joni2000de
19.01.2012 um 23:45 Uhr
Hi nxclass,

das mit dem exec funktioniert leider nicht da dies in einer Funktion nicht zulässig ist.

Trotzdem danke.

Gruß Joni
Bitte warten ..
Mitglied: Logan000
20.01.2012 um 09:16 Uhr
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.
Bitte warten ..
Mitglied: joni2000de
20.01.2012 um 09:42 Uhr
Hallo Logan,

MSSQL Server 2008 R2. Die Funktionen geben mir je eine Tabelle zurück die verschiedene Selects mit Joins enthalten. Die über die Funktionen erstellten Tabellen werden dann in einem Select weiterverarbeitet. Jetzt ist es aber so, dass ich in allen Funktionen auf eine gemeinsame, aber eben je nach dem welcher User das Select ausführt, unterschiedliche Tabelle zugreifen muss. Den Namen dieser Tabelle wollte ich als Variable in die Funktion übergeben, damit in der Funktion ein Select auf diese variable Tabelle möglich ist.

Wenn das nicht geht habe ich mir folgendes überlegt (ist noch nicht getestet):
Ich baue eine View die die Daten dieser Usertabellen zusammenzieht. Der Name ist dann fix und kann in der Funktion angegeben werden. Aus dieser View machen ich ein Select für welches ich als Variable die Bedingung (nämlich den betreffenden User) für die Where-Klausel übergebe.

Was meint ihr dazu?

Danke für das Feedback!

Gruß Joni
Bitte warten ..
Mitglied: Logan000
20.01.2012 um 09:58 Uhr
Moin Joni

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 ....
01.
exec('select * from ' + @variable)
Gruß L.
Bitte warten ..
Mitglied: joni2000de
25.03.2012 um 17:37 Uhr
Hallo Logan,
spät aber doch hier noch mein Feedback.
Ich habe das jetzt mit einer Tabelle für alle User gelöst. Funktioniert tadellos
Danke für deine Hilfe.
Gruß Joni
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
LAN, WAN, Wireless
Hat On Networks PL500PS WLAN-Funktion? (4)

Frage von Andy1987 zum Thema LAN, WAN, Wireless ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

iOS
IOS 10.2 bringt SOS-Funktion aufs iPhone

Link von sabines zum Thema iOS ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...