Zweck dieses SQL-Skriptes
Das Management Center zeigt im Edit-Printers-Menü einer Connection als Freigabenamen standardmäßig den Druckernamen, ergänzt um die Clientadresse in folgendem Format:
druckername_lokalerdruckserver oder clientdruckernname_clientadressse
Allerdings wollen manche KundInnen die Endung ab dem Unterstrich vom Freigabenamen entfernen, also _lokalerdruckserver bzw _clientadressse. Dies wollen Sie verständlicherweise nicht manuell ausführen müssen. In diesem Fall müssen die Druckernamen in der gesamten Druckumgebung eindeutig sein.
Bitte beachten! Für die Anwendung dieses Skriptes dürfen weder die Namen der lokalen Druckserver noch die Clientadressen einen Unterstrich (_) enthalten, da das Skript die Freigabenamen von rechts nach dem ersten Unterstrich durchsucht. Wenn jedoch beispielsweise alle Clientadressen einer bestimmten Connection einen Unterstrich enthalten, kann man das Skript mithilfe der Connection-ID einfach zweimal ausführen (siehe unten Alle Freigabenamen einer bestimmten Connection ändern).
Alle Freigabenamen einer SQL-Datenbank ändern
- Ermitteln Sie den Datenbanknamen in der Konsole des Management Centers mit Extra→ Application Settings.
- Schließen Sie die Konsole des Management Centers.
- Öffnen Sie SQL Server Management Studio.
- Markieren Sie (links) die betreffende Datenbank und generieren Sie eine Sicherheitskopie mit Tasks→ Back Up im Kontextmenü.
- Klicken Sie dann New Query (linker Pfeil in folgendem Bild).
- Kopieren Sie die folgende Zeile in das Eingabefeld (rechts):
UPDATE CONPRINTER SET SHARENAME = SUBSTRING(SHARENAME, 1, LEN(SHARENAME) - CHARINDEX('_', REVERSE(SHARENAME)) )
- Klicken Sie auf Execute (rechter Pfeil). Unten erscheint eine Bestätigungsmeldung; in dieser Meldung ist die Zahl der Zeilen doppelt so groß wie die Zahl der Druckerobjekte.
- Schließen Sie SQL Server Management Studio.
- Fertig. Sie können die Konsole des Management Centers wieder öffnen.
Alle Freigabenamen einer bestimmten Connection ändern
Alternativ zur Anwendung des Skriptes auf die gesamte Datenbank ist es auch möglich, dies auf eine bestimmte Connection zu begrenzen. Hierzu müssen Sie erst die betreffende Connection-ID herausfinden (siehe die Spalte FK_CONNECTION):
- Markieren Sie die Zeile der Connection-Drucker dbo.CONPRINTER und wählen Sie Select Top 1000 Rows oder Edit Top 200 Rows.
- Hierbei könnten Sie die Meldung “not accessible” erhalten. Für diesen Fall können sie – temporär – die Zugriffsrechte (Restrict Access) auf die Datenbank von Single_User auf Multi_User umstellen.
- Kopieren Sie dann die folgende Zeile in das Eingabefeld (rechts):
UPDATE CONPRINTER SET SHARENAME = SUBSTRING(SHARENAME, 1, LEN(SHARENAME) - CHARINDEX('_', REVERSE(SHARENAME)) ) WHERE FK_CONNECTION = 4;
Trage Sie am Ende des Skriptes die herausgefundene Connection-ID vor dem Semikolon ein – in diesem Fall die 4.
- Klicken Sie auf Execute. Unten erscheint eine Bestätigungsmeldung; in dieser Meldung ist die Zahl der Zeilen doppelt so groß wie die Zahl der Druckerobjekte.
- Setzen Sie die Datenbank-Eigenschaft Restrict Access zurück auf Single_User, und schließen Sie SQL Server Management Studio.
Freigabenamen bestimmter Drucker ändern
Als Teil anderer Skripte kann es erforderlich sein, Freigabenamen eines bestimmten Druckers zu ändern. Analog zur Verwendung des Skriptes pro Connection kann es auch pro Drucker ausgeführt werden. Hierzu ermitteln Sie zuvor die IDs der betreffenden Drucker (siehe Spalte FK_SRCPRINTER).
- Hierbei könnten Sie die Meldung “not accessible” erhalten. Für diesen Fall können sie – temporär – die Zugriffsrechte (Restrict Access) auf die Datenbank von Single_User auf Multi_User umstellen.
- Kopieren Sie dann die folgende Zeile in das Eingabefeld (rechts):
UPDATE CONPRINTER SET SHARENAME = SUBSTRING(SHARENAME, 1, LEN(SHARENAME) - CHARINDEX('_', REVERSE(SHARENAME)) ) WHERE FK_SRCPRINTER = 15;
Tragen Sie am Ende des Skriptes die herausgefundene Drucker-ID vor dem Semikolon ein – in diesem Fall die 15.
- Klicken Sie auf Execute. Unten erscheint eine Bestätigungsmeldung; in dieser Meldung ist die Zahl der Zeilen doppelt so groß wie die Zahl der Druckerobjekte.
- Setzen Sie die Datenbank-Eigenschaft Restrict Access zurück auf Single_User, und schließen Sie SQL Server Management Studio.