Top-Themen

Aktuelle Themen (A bis Z)

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, 4548 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 ..
Ähnliche Inhalte
Batch & Shell
2 Spalten einer CSV per Batch in Variable auswerten und an MSSQL-Query übergeben
Frage von chgs2011Batch & Shell25 Kommentare

Hallo, ich habe eine primitive CSV-Datei, die ich gerne auswerten würde (Spaltentrenner ";"). Die CSV hat beliebig viele Zeilen, ...

Datenbanken
Oracle - Ausgabe aller Tabellennamen und der Spaltennamen der jeweiligen Tabelle in eine Datei
gelöst Frage von tom1984aDatenbanken1 Kommentar

Hallo, ich bin neu hier und daher ist dies meine erste Anfrage. Ich versuche im Rahmen des Informationsfreiheitsgesetzes meines ...

Microsoft Office
VBA - Zellen anhand des Zellinhaltes und des Tabellennamen kopieren
gelöst Frage von Noah15Microsoft Office2 Kommentare

Guten Tag, folgendes Problem stellt sich mir und ich hoffe, dass sich vor den Festtagen noch jemand findet, der ...

PHP
Array an Funktion übergeben erzeugt Fatal Error beim Aufruf
gelöst Frage von JochemPHP7 Kommentare

Moin zusammen, in einem PHP-Script habe ich ein zweidimensionales Array mit Daten, welche ich in einer Funktion auslesen und ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 5 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 6 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 8 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 13 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...