【PowerShell】テーブルのレコードをCSVファイルへ出力する【SQL Server】

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

テーブルのレコード
テーブルのレコード

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

出力するCSVファイル
出力するCSVファイル
PR

コード

ここでは例として
 ・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

以下を指定します(2~12行目)。

・サーバー名(サーバーのPC名\インスタンス名)
・データベース名
・ユーザー名
・パスワード
・SQL
・出力するCSVファイルのパス

「invoke-sqlCmd」コマンドレットにより、SQLを実行します(23行目)。

「Export-Csv」コマンドレットにより、SQLの結果をCSVファイルへ出力します(23行目)。

「Export-Csv」コマンドレットにより出力されたCSVファイルにはダブルクォーテーションが付与されてしまうため、置換により削除します(25行目)。

PR

実行結果

テーブルのレコードをCSVファイルへ出力できました。

実行結果①
実行結果①
実行結果②
実行結果②
PR

参考①

上記のコードは以下の記事を参考にして作成しました。

●テキストファイル内の文字列を置換する

PR

参考②

上記で使用した以下の詳細は、公式サイトをご確認ください。

●「invoke-sqlCmd」コマンドレット


●「Export-Csv」コマンドレット

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