SQL Server Management Studio でクエリ結果をヘッダー付きで保存:3 つの簡単ステップ
SQL Server Management Studio でクエリ結果をヘッダー付きで保存する方法
CSV ファイルとして保存
- クエリを実行します。
- 結果グリッドで、右クリックしてから **「結果をファイルに出力」**を選択します。
- 「保存」 ダイアログボックスが開きます。
- 「ファイル名」 に、保存するファイルの名前を入力します。
- 「保存の種類」 で、**「CSV (コンマ区切り) (*.csv)」**を選択します。
- 「オプション」 ボタンをクリックして、CSV ファイルの書式設定オプションを指定できます。
- 「列ヘッダーを含める」: このオプションをオンにすると、結果グリッドの列ヘッダーが CSV ファイルに含められます。
- 「区切り文字」: デフォルトはコンマ (,) ですが、他の文字に変更することもできます。
- 「テキスト修飾記号」: テキスト値を囲むために使用する文字を指定できます。
- 「保存」 ボタンをクリックして、CSV ファイルを保存します。
- エクセルが開き、クエリ結果が新しいワークシートに貼り付けられます。
- ワークシートを名前変更して保存します。
上記の方法に加えて、以下の方法でもクエリ結果をヘッダー付きで保存することができます。
- 「ツール」 メニューから 「オプション」 を選択し、「クエリ結果」 ページで 「結果をグリッドに表示」 タブを選択します。「結果のコピーまたは保存時に列のヘッダーを含める」 チェックボックスをオンにします。
- 「クエリ」 メニューから **「結果をエクスポート」**を選択します。このオプションを使用すると、様々な形式でクエリ結果をエクスポートすることができます。
補足
- SSMS でクエリ結果を保存する前に、「ツール」 メニューから 「オプション」 を選択し、「クエリ結果」 ページで設定を確認することをお勧めします。これらの設定は、クエリ結果を保存する方法に影響を与える可能性があります。
- クエリ結果を保存する前に、結果グリッドをプレビューして、必要なすべてのデータが含まれていることを確認してください。
-- サンプルクエリ:すべての顧客情報を取得する
SELECT *
FROM Customers;
-- 結果を CSV ファイルとして保存
-- ファイル名:customers.csv
-- 区切り文字:コンマ (,)
-- テキスト修飾記号:なし
EXEC sp_OACREATE 'customers.csv', 'SELECT * FROM Customers', 1, 1, ',' , '';
このコードは、Customers テーブルのすべての顧客情報を取得し、customers.csv という名前の CSV ファイルに保存するサンプルクエリです。
EXEC sp_OACREATE 'customers.csv', 'SELECT * FROM Customers', 1, 1, ',' , '';
: このコマンドは、クエリ結果を CSV ファイルに保存します。'customers.csv'
: 保存するファイルの名前。'SELECT * FROM Customers'
: 保存するクエリ。1
: ヘッダー行を含めるかどうかを指定します。この場合、値は 1 なので、ヘッダー行が含まれます。','
: 列の区切り文字を指定します。この場合、値は,
なので、コンマが区切り文字として使用されます。''
: テキスト値を囲むための修飾記号を指定します。この場合、値は空文字なので、修飾記号は使用されません。
このコードはあくまで一例であり、ニーズに合わせて変更することができます。例えば、保存する列やファイル形式を変更したり、クエリに条件を追加したりすることができます。
-- サンプルクエリ:すべての顧客情報を取得する
SELECT *
FROM Customers;
-- 結果をエクセル ファイルとして保存
-- ファイル名:customers.xlsx
INSERT INTO ##Temp_ExcelData
SELECT *
FROM Customers;
-- ##Temp_ExcelData テーブルをエクセル ファイルにエクスポートする
EXEC sp_OADATAPROVIDER 'Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;HDR=YES', 'customers.xlsx', 'SELECT * FROM ##Temp_ExcelData';
-- ##Temp_ExcelData テーブルを削除する
DROP TABLE ##Temp_ExcelData;
-- サンプルクエリ:すべての顧客情報を取得する
SELECT *
FROM Customers;
-- 結果をテキスト ファイルとして保存
-- ファイル名:customers.txt
-- 区切り文字:タブ
-- テキスト修飾記号:なし
EXEC sp_OACREATE 'customers.txt', 'SELECT * FROM Customers', 1, 0, '\t', '';
SQL Server Management Studio でクエリ結果をヘッダー付きで保存するその他の方法
クエリ エディター ツールバーを使用する
- クエリ エディター ツールバーの 「結果」 メニューから 「結果をファイルに出力」 を選択します。
- ファイル名、保存の種類、その他のオプションを指定して、「保存」 ボタンをクリックします。
ショートカットキーを使用する
- Ctrl + Shift + F キーを押します。
T-SQL コードを使用する
- 以下の T-SQL コードを実行します。
-- サンプルクエリ:すべての顧客情報を取得する
SELECT *
FROM Customers;
-- 結果を CSV ファイルとして保存
-- ファイル名:customers.csv
-- 区切り文字:コンマ (,)
-- テキスト修飾記号:なし
EXEC sp_OACREATE 'customers.csv', 'SELECT * FROM Customers', 1, 1, ',' , '';
PowerShell を使用する
- 以下の PowerShell スクリプトを実行します。
$serverName = "localhost"
$databaseName = "MyDatabase"
$tableName = "Customers"
$fileName = "customers.csv"
# SQL Server に接続する
$connection = New-Object System.Data.SqlClient.SqlConnection("Server=$serverName;Database=$databaseName;Integrated Security=SSPI")
$connection.Open()
# クエリを実行する
$command = New-Object System.Data.SqlClient.SqlCommand("SELECT * FROM $tableName", $connection)
$reader = $command.ExecuteReader()
# 結果を CSV ファイルに書き出す
$csv = New-Object System.IO.StreamWriter($fileName)
$csv.WriteLine($reader.GetSchemaTable().Rows | ForEach-Object { $_.Item("ColumnName") })
while ($reader.Read()) {
$row = $reader.ItemArray | ForEach-Object { $_.ToString() }
$csv.WriteLine($row -join ',')
}
$csv.Close()
$reader.Close()
$connection.Close()
上記以外にも、様々な方法でクエリ結果をヘッダー付きで保存することができます。 自分に合った方法を見つけてください。
sql sql-server-2008 excel