Heute mal was aus der Praxis, wo ich dachte: WICHTIGE NOTIZE 😎
Irgendein SQL-Script läuft sauber durch, die Ausgabe steht sichtbar im SSMS – aber sobald du sie per „Results to File / Grid / Text“ exportieren willst, bleibt die Datei leer. Kein Fehler, keine Meldung, einfach nichts. Das ist ein Klassiker und trifft besonders oft bei Diagnose- und Wartungs-Scripts, die Hersteller mitliefern. Im Omnissa/Workspace ONE-Umfeld läuft man z. B. vor einem UEM-Upgrade genau da hinein. Die Ursache ist immer dieselbe – und harmloser, als sie im ersten Moment wirkt.
Typische Kandidaten
Betroffen ist jedes Script, das seine Ergebnisse nicht per SELECT ausgibt, sondern per PRINT bzw. RAISERROR ... WITH NOWAIT – also alles, was primär Statusmeldungen und Prüfausgaben produziert. Aus dem Omnissa/Workspace ONE-Alltag sind das unter anderem:
- DB-Readiness-Script – Prüfung der AirWatch-/WS1-Datenbank vor Installation oder Upgrade
- Database Health Check-Scripts – Konsistenz-, Index- und Konfigurationsprüfungen der Datenbank
- Wartungs- und Index-Rebuild-Scripts – Reorganisation/Rebuild von Indizes
- Purge-/Cleanup-Scripts – z. B. das Aufräumen alter Device-Event-Logs
Das Prinzip gilt für jedes PRINT-lastige Script – egal ob SQL-Server-Wartungspläne, Microsoft-Diagnose-Skripte oder deine eigenen Snippets. Die Omnissa-Scripts sind nur ein besonders häufiger Anlaufpunkt.
Warum „Results To“ scheinbar nichts liefert
Solche Scripts geben ihre Prüfergebnisse nicht über SELECT aus, sondern über PRINT bzw. RAISERROR ... WITH NOWAIT. Und genau da liegt der Hund begraben: Diese Ausgabe landet im Messages-Tab, nicht im Results-Grid. „Results to Grid / Text / File“ exportieren aber ausschließlich echte Result-Sets. Kommen keine SELECT-Ergebnisse zurück, bleibt der Export logischerweise leer.
Results-Grid = Rückgabe von SELECT-Statements. Messages-Pane = alles aus PRINT, RAISERROR und Server-Meldungen. Das sind in SSMS zwei komplett getrennte Kanäle.
Der schnellste Fix – Toggle und nochmal Execute
Hier stellt man sich gern selbst ein Bein: „Results to File“ ist ein Toggle für den nächsten Lauf – kein Button, der ein bereits vorhandenes Ergebnis nachträglich exportiert. Wenn dein letzter Durchlauf noch auf „Results to Grid“ stand, passiert beim reinen Umschalten nichts. Du musst danach erneut ausführen:
- Im Query-Fenster auf Results to File stellen (Strg+Shift+F).
- Nochmal auf Execute (F5).
- SSMS fragt jetzt nach Pfad und Dateiname – Default ist .rpt, das kannst du direkt auf .txt ändern.
Fertig. Kein SQLCMD, kein PowerShell. Für den einmaligen Export ist das der geradlinigste Weg.
Der „Results to …“-Zustand gilt immer erst ab dem nächsten Execute. Umschalten + F5 – nicht umschalten und hoffen.
