none
Problem mit SQLServeragent Job mit Powershell und invoke-sqlcmd Ausgaben RRS feed

  • Frage

  • Die Ausgabe von mehreren Selects können in einem Powershell Step mit dem invoke-sqlcmd Cmdlet nicht alle ausgeben werden.
    Nur wenn die Spaltennamen des zweiten select eine Untermenge der Spaltennamen des ersten selects sind, werden diese auch ausgegeben:

    Bsp.1:
    invoke-sqlcmd -query "select getdate() as a, getdate() ; select getdate() as a, getdate(),getdate() as b" -database Mydb -serverinstance Test\Inst1
    ==> (es fehlt getdate() as b)
    a                                       Column1
    -                                       -------
    09.03.2011 10:16:16                     09.03.2011 10:16:16
    09.03.2011 10:16:16                     09.03.2011 10:16:16
    Bsp.2:
    invoke-sqlcmd -query "select getdate() as a, getdate(),getdate() as b ; select getdate() as a, getdate()" -database Mydb -serverinstance Test\Inst1
    ==>
    a                          Column1                    b
    -                          -------                    -
    09.03.2011 10:17:29        09.03.2011 10:17:29        09.03.2011 10:17:29
    09.03.2011 10:17:29        09.03.2011 10:17:29

    Wie kommt man in Bsp.1 an die Ausgaben von "getdate() as b" ?

    Mittwoch, 9. März 2011 09:41

Antworten

  • Hallo,

    mit der Ausgabe von MARS Ergebnissen sind viele Apps etwa überfordert, vor allem wenn sie wie bei Deinem Beispiel doch eher sehr unstrukturiert sind; eine gewisse Ordnung ist da schon mal Voraussetzung.

    PowerShell kennt den FORMAT-TABLE Befehl, mit dem man Spalten und deren Formate vorgeben kann. Aber wie gesagtm setzt Struktur voraus, Du musst den Spalten in gleicher Reihenfolge ein gleiches Alias geben (im Beispiel a,b,c), damit Du eine brauchbares Ergebnis bekommst.

    Beispiel:

    invoke-sqlcmd -query "select getdate() as a, getdate() AS b; select getdate() as a, getdate() AS b,getdate() as c" | FORMAT-TABLE a,b,c
    

    Ergebnis:

    a                          b                          c

    -                          -                          -

    09.03.2011 13:02:59        09.03.2011 13:02:59

    09.03.2011 13:02:59        09.03.2011 13:02:59        09.03.2011 13:02:59

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Mittwoch, 9. März 2011 12:12