sql >> Databasteknik >  >> RDS >> Sqlserver

Formatera powershell SQL Server-utdata i kolumner och rader

Export-Csv förväntar sig att ingången är objekt. Stränginmatning betraktas som strängobjekt, som bara har en egenskap (Length ), så endast den här egenskapen exporteras. Om din inmatning är en rad strängar måste du göra den till ett objekt, t.ex. så här:

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

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

Ovanstående skulle skapa filen output.csv med följande innehåll:

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

Egenskapens namn (a , b , c ) blir CSV-huvudena, egenskapsvärdena (foo , bar , baz ) blir CSV-värdena.

Om din SQL-fråga genererar en lista med arrayer måste du förmodligen göra något så här:

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

Jag har dock ingen SQL-server till hands, så ta med en nypa salt.



  1. Konfigurera e-postservern för att fungera med PHP

  2. Postgres DB Size Command

  3. Hur uppdaterar man JPA-enheter när backend-databasen ändras asynkront?

  4. släpp tabellutrymme om det inte finns