sql >> Database >  >> RDS >> Sqlserver

Powershell SQL Server-uitvoer opmaken in kolommen en rijen

Export-Csv verwacht dat de invoer objecten zijn. Stringinvoer wordt beschouwd als stringobjecten, die slechts één eigenschap hebben (Length ), dus alleen deze eigenschap wordt geëxporteerd. Als uw invoer een reeks tekenreeksen is, moet u er een object van maken, b.v. zoals dit:

$array = "foo", "bar", "baz"

New-Object -Type PSCustomObject -Property @{
  "a" = $array[0]
  "b" = $array[1]
  "c" = $array[2]
} | Export-Csv output.csv -NoTypeInformation

Het bovenstaande zou een bestand maken output.csv met de volgende inhoud:

"c","a","b"
"baz","foo","bar"

De eigenschapsnamen (a , b , c ) worden de CSV-headers, de eigenschapswaarden (foo , bar , baz ) worden de CSV-waarden.

Als uw SQL-query een lijst met arrays genereert, moet u waarschijnlijk zoiets als dit doen:

Invoke-Sqlcmd ... | % {
  New-Object -Type PSCustomObject -Property @{
    "col1" = $_[0]
    "col2" = $_[1]
    "col3" = $_[2]
  }
} | Export-Csv output.csv -NoTypeInformation

Ik heb echter geen SQL-server bij de hand, dus neem het met een korreltje zout.



  1. Knee-Jerk Wait-statistieken:CXPACKET

  2. Is Oracle's SYS_GUID() UUID RFC 4122 compatibel?

  3. Een tabel maken in de modus voor één gebruiker in postgre

  4. XMLAGG met RTRIM-probleem