Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

DB-Owner in SQL dynamisch ersetzen

Frage Entwicklung Datenbanken

Mitglied: Loonie

Loonie (Level 1) - Jetzt verbinden

11.11.2011 um 12:50 Uhr, 2396 Aufrufe, 1 Kommentar

Hallo,

ich habe für verschiedene Mandanten immer die gleiche Tabellenstruktur in einer Datenbank gespeichert. Außerdem habe ich eine Kundentabelle, die wie folgt aussieht:

Tabelle CMS.KUNDEN Spalten ( ProdOwner, Name, Beginn ...)
Beispiele sind ( M100, Mandant1, 01.01.2011) , (M200, Mandant2, 01.04.2011) ...

Die Tabellen des Kunden haben jeweils den DB-Benutzer vorweggestellt, also M100.TABELLE1

Bislang habe ich es so gelöst:

SELECT 'Mandant1', Name, Datum, Flag1 FROM M100.TABELLE1
UNION
SELECT 'Mandant2', Name, Datum, Flag1 FROM M200.TABELLE1
...

Wie kann ich es clever lösen, dass alle Mandantennummern aus der Kundentabelle mit einer verschachtelten Abfrage durchlaufen werden.

Danke und Gruß

Thomas
Mitglied: Indrador
24.11.2011 um 23:14 Uhr
Zitat von Loonie:
Hallo,

ich habe für verschiedene Mandanten immer die gleiche Tabellenstruktur in einer Datenbank gespeichert. Außerdem habe
ich eine Kundentabelle, die wie folgt aussieht:

Tabelle CMS.KUNDEN Spalten ( ProdOwner, Name, Beginn ...)
Beispiele sind ( M100, Mandant1, 01.01.2011) , (M200, Mandant2, 01.04.2011) ...

Die Tabellen des Kunden haben jeweils den DB-Benutzer vorweggestellt, also M100.TABELLE1

Bislang habe ich es so gelöst:

SELECT 'Mandant1', Name, Datum, Flag1 FROM M100.TABELLE1
UNION
SELECT 'Mandant2', Name, Datum, Flag1 FROM M200.TABELLE1
...

Wie kann ich es clever lösen, dass alle Mandantennummern aus der Kundentabelle mit einer verschachtelten Abfrage durchlaufen
werden.

Danke und Gruß

Thomas


Hi,

ich weiß nicht, ob ich die Frage richtig verstanden habe, aber falls du alle Selects + UNION haben willst, gehts schnell so:
01.
Select	case rank() OVER (Order by mandant) 
02.
		when (select COUNT(mandant) from mandant ) then 
03.
		'SELECT Mandant'+	case	when RIGHT(mandant,1) <> 0 then substring(mandant,2,3) when RIGHT(mandant,2) <> 00 then substring(mandant,2,2) else substring(mandant,2,1) end+', Name, Datum, Flag1 FROM ' + mandant + '.TABELLE1' 
04.
		else 
05.
		'SELECT Mandant'+	case	when RIGHT(mandant,1) <> 0 then substring(mandant,2,3) when RIGHT(mandant,2) <> 00 then substring(mandant,2,2) else substring(mandant,2,1) end+', Name, Datum, Flag1 FROM ' + mandant + '.TABELLE1 UNION' 
06.
		end 
07.
from mandant
Funktioniert allerdings nur bis zu M###, M ist nicht abgedeckt aber einfach zu ergänzen. übersprungene Nummern sind kein Problem.

Gruß
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Backup restore SQL Express DB (7)

Frage von franksig zum Thema Datenbanken ...

Microsoft
gelöst SQL TEMP DB Disk Space (4)

Frage von TECHGENE zum Thema Microsoft ...

Notebook & Zubehör
gelöst Taste ersetzen - wie? (6)

Frage von honeybee zum Thema Notebook & Zubehör ...

VB for Applications
gelöst DB-Abfrage in Excel mit Kriterien aus Excel (11)

Frage von JensDND zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...