【SQL Server】invoke-sqlCmdのSELECT結果をCSVファイルへ出力する【PowerShell】

PowerShellから
 ・invoke-sqlCmd(SELECT文)を実行して
 ・結果をCSVファイルへ出力
する方法を紹介します!

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

「ダブルクォーテーション」は
除けます!

出力するCSVファイル。 列名(カラム名)も出力。ダブルクォーテーションは除く。
出力するCSVファイル。 列名(カラム名)も出力。ダブルクォーテーションは除く。
PR

サンプルプログラムの概要

PowerShellから
 ・invoke-sqlCmd(SELECT文)を実行して、結果をCSVファイルへ出力
 ・CSVファイルの中のダブルクォーテーションを置換により削除
します。

PR

サンプルプログラム作成

# サーバー名(サーバーの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

以下を設定します(1~12行目)。
※状況に合わせて適時修正してください。

・サーバー名
・データベース名
・ユーザー名
・パスワード
・SQL
・CSVファイルのパス

SQLを実行し結果をCSVファイルへ出力します(23行目)。

CSVファイルの中のダブルクォーテーションを置換により削除します(25行目)。

PR

実行結果

invoke-sqlCmdのSELECT結果をCSVファイルへ出力できました。
※列名(カラム名)も出力できました。
※ダブルクォーテーションも除けました。

実行結果
実行結果
PR

参考

バッチファイルからsqlcmdを使用して、SELECT結果をCSVファイルへ出力することもできます。

詳細は以下の記事をご確認ください。

タイトルとURLをコピーしました