sql >> Databáze >  >> RDS >> Sqlserver

Formátování výstupu powershell SQL Server do sloupců a řádků

Export-Csv očekává, že vstupem budou objekty. Vstup řetězce je považován za objekty řetězce, které mají pouze jednu vlastnost (Length ), takže se exportuje pouze tato vlastnost. Pokud je vaším vstupem pole řetězců, musíte z něj udělat objekt, např. takhle:

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

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

Výše uvedené by vytvořilo soubor output.csv s následujícím obsahem:

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

Názvy vlastností (a , b , c ) se stanou hlavičkami CSV, hodnotami vlastností (foo , bar , baz ) se stanou hodnotami CSV.

Pokud váš dotaz SQL generuje seznam polí, budete pravděpodobně muset udělat něco takového:

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

Nemám však po ruce SQL server, takže to berte s rezervou.



  1. Oznámení ClusterControl 1.4.1 - vydání ProxySQL

  2. Jak nainstalovat MariaDB na Rocky Linux a AlmaLinux

  3. Na stránce úprav zobrazit vybraný přepínač

  4. sudo make vrátí chybu nastavení memcache