Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Formatowanie danych wyjściowych programu Powershell SQL Server na kolumny i wiersze

Export-Csv oczekuje, że dane wejściowe będą obiektami. Wprowadzane ciągi znaków są traktowane jako obiekty ciągów, które mają tylko jedną właściwość (Length ), więc eksportowana jest tylko ta właściwość. Jeśli dane wejściowe to tablica ciągów znaków, musisz przekształcić ją w obiekt, np. tak:

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

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

Powyższe spowoduje utworzenie pliku output.csv o następującej treści:

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

Nazwy właściwości (a , b , c ) stają się nagłówkami CSV, wartościami właściwości (foo , bar , baz ) stają się wartościami CSV.

Jeśli twoje zapytanie SQL generuje listę tablic, prawdopodobnie będziesz musiał zrobić coś takiego:

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

Nie mam jednak pod ręką serwera SQL, więc podejmij to z przymrużeniem oka.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego nie ma funkcji okienkowych w klauzulach where?

  2. Jak przekonwertować byte[] na datetime w C#?

  3. Różnica między wielowyrazowymi funkcjami z wartościami tabelarycznymi a wbudowanymi funkcjami z wartościami tabelarycznymi w programie SQL Server

  4. Uciekanie symboli specjalnych w Sqlcmd

  5. Czy można ustawić limit czasu dla zapytania SQL w Microsoft SQL Server?