
PowerShellから
・テーブルのレコードをCSVファイルへ出力
できます!


出力するCSVファイルには
・列名(カラム名)も出力
されます!

コード
ここでは例として
・SQL Server上のDB「sampleDB」にあるテーブル「employee」のレコードを
・CSVファイルへ出力
します。
# サーバー名(サーバーのPC名\インスタンス名)
$serverName = 'localhost\SQLEXPRESS'
# データベース名
$dbName = 'sampleDB'
# ユーザー名
$userName = 'XXXXX'
# パスワード
$password = 'XXXXX'
# SQL
$query = 'SELECT * FROM employee'
# 出力するCSVファイルのパス
$csvFilePath = "C:\Users\user\Desktop\result.csv"
$Params = @{
'ServerInstance' = $serverName
'Database' = $dbName
'Username' = $userName
'Password' = $password
'Query' = $query
}
# SQLを実行し結果をCSVファイルへ出力
invoke-sqlCmd @Params | Export-Csv $csvFilePath -NoTypeInformation -Encoding Default
# CSVファイルの中のダブルクォーテーションを置換により削除
(Get-Content $csvFilePath -ErrorAction Stop) -creplace """","" | Out-File -Encoding default $csvFilePath
実行結果
テーブルのレコードをCSVファイルへ出力できました。


参考①
上記のコードは以下の記事を参考にして作成しました。
●テキストファイル内の文字列を置換する
参考②
上記で使用した以下の詳細は、公式サイトをご確認ください。
●「invoke-sqlCmd」コマンドレット
●「Export-Csv」コマンドレット