PowerShellから
・invoke-sqlCmd(SELECT文)を実行して
・結果をCSVファイルへ出力
する方法を紹介します!
CSVファイルには
・列名(カラム名)も出力
させます!
「ダブルクォーテーション」は
除けます!
サンプルプログラムの概要
PowerShellから
・invoke-sqlCmd(SELECT文)を実行して、結果をCSVファイルへ出力
・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
実行結果
invoke-sqlCmdのSELECT結果をCSVファイルへ出力できました。
※列名(カラム名)も出力できました。
※ダブルクォーテーションも除けました。
参考
バッチファイルからsqlcmdを使用して、SELECT結果をCSVファイルへ出力することもできます。
詳細は以下の記事をご確認ください。