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

Mitglied: joni2000de

joni2000de (Level 1) - Jetzt verbinden

19.01.2012, aktualisiert 25.03.2012, 4611 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 ...

Datenbanken

MSSQL quenquery

gelöst Frage von petereDatenbanken6 Kommentare

Hallo, ich stoße leider an die Grenzen meiner MSSQL-Kenntnisse. Ich muss diesen, eigentlich einfachen, UPDATE-Ausdruck via zwei Verbindungsserver-Verbindungen realisieren. ...

Neue Wissensbeiträge
Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 22 MinutenMicrosoft

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 18 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 1 TagiOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...