Sql Server Management Studioでヘッダー付きの結果を保存する


183

SQL Server Management Studioを使用しています。

クエリの結果をExcelファイルに保存したい。

「名前を付けて保存」を選択し、Excelで開くことができるCSVファイルに保存します。列ヘッダーがないことを除いてすべて良いですが、どのようにしてそれらをエクスポートするのですか?

回答:


274

Tools> Options> Query Results> SQL Server> Results to Text (or Grid if you want)>Include columns headers in the result set

このオプションを変更した後、SSMSを閉じて再度開く必要がある場合があります。

SQLエディターのツールバーで、SSMSを再起動せずにファイルに保存を選択できます


35
+1、これをテストして機能します:ツール->オプション->クエリ結果-> SQL Server->結果をグリッドに表示し、[結果をコピーまたは保存するときに列ヘッダーを含める]をオンにします。
ジェフ緒方

46
これはSSMS 2012で機能します。設定を有効にするには、SSMSを再起動する必要があります。
SliverNinja-MSFT 2012年

17
確認するには、このオプションを適用するためにSSMSを閉じて再度開く必要があります。
クリストファーキング

8
クリストファーが言ったように、変更を有効にするにはSSMSを再起動する必要があります。
Rob

8
SSMS 2016の場合も、これらの変更を有効にするには再起動する必要があります。
Chris Haas

36

エクスポートウィザードを試してください。この例ではテーブル全体を選択しますが、クエリを指定するのと同じくらい簡単です。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

(ここでクエリを指定することもできます)

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください


4
それをありがとう。しかし、これはテーブル用です。私の質問は質問でした。
dublintech 2012年

1
4番目のステップ「テーブルコピーまたはクエリの指定」でクエリを指定することもできます。
John Dewey

私は他のすべてのアプローチを試しましたが、これが私の混合データ型に対して機能した唯一のものです。
DOK 2013年

3
これは機能しますが、非常に苦痛で時間がかかります。SQL ServerとExcelはどちらもMS製品です。2013年に単純なエクスポートボタンがないのは驚くべきことです。
アンドレ

34

もう1つの可能性は、クリップボードを使用して結果を直接Excelにコピーして貼り付けることです。データによっては、予期しない結果になる場合があるため、一般タイプのExcel列には注意してください。CTL-A結果グリッドの任意の場所で右クリックします。

ここに画像の説明を入力してください

Excelの一般的な形式で不要な変換を行うことに問題がある場合は、Excelで空白の列を選択してから貼り付けて、形式を「テキスト」に変更してください。


Excelの書式設定を除いて、これはすばらしいことです。先頭にゼロが付いている数値(携帯電話の番号など)は、Excelでゼロを削除します。他にも待機中のフォーマットの問題があります。自分の危険で使用してください。Microsoftに感謝します。
e_i_pi

12

少なくともSQL Server 2012では、クエリウィンドウを右クリックして[クエリオプション]を選択できます。そこから、グリッドやテキストのヘッダーを含めるを選択し、SSMSを再起動せずに、名前を付けて保存を希望どおりに機能させることができます。

新しいクエリウィンドウでデフォルトでこれらの設定を使用するには、メニューバーの[ツール]> [オプション]で変更する必要があります。


7

同じ問題がVisual Studioにも存在します。ここでそれを修正する方法を示します。

移動:

Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid

チェックボックスをクリックしてtrueにします。「結果をコピーまたは保存するときに列ヘッダーを含める」


6

左上隅をクリックして結果を選択し、右クリックして[ヘッダー付きでコピー]を選択します。Excelに貼り付けます。できた!


4

@Diegoの承認済みの回答で変更するようにアドバイスされている設定は、SQL Server Management Studio(SSMS)内で開く将来のすべてのクエリセッションに対してこのオプションを永続的に設定する場合に適しています。これは通常そうではありません。また、この設定を変更するには、SQL Server Management Studio(SSMS)アプリケーションを再起動する必要があります。保存されていない開いているクエリセッションウィンドウが多数あり、デバッグの途中にいる場合、これもまた「あまり良くない」エクスペリエンスです。

SQL Serverは、セッションごとにそれを変更する非常に洗練されたオプションを提供します。クエリオプションウィンドウを使用して以下の手順を詳しく説明します。

  1. クエリエディターウィンドウで右クリックし、Query Options...次のようにコンテキストメニューの下部をクリックします。

ここに画像の説明を入力してください

  1. 左側のナビゲーションペインで[ Results>] Gridを選択します。次にInclude column headers when copying or saving the results示すように、右ペインのチェックボックスをオンにします。

ここに画像の説明を入力してください

それでおしまい。現在のセッションでは、SSMSを再起動することなく、すぐに有効な設定が反映されます。また、この設定は今後のセッションには反映されません。この設定をセッションごとに効果的に変更することは、それほど騒々しいことではありません。


2

結果をエクスポートするときにSSMSがCSVセパレータを適切にエスケープする方法を探す場合は、ここにアクセスしてください。

何だと思う?-これは実際にはオプションであり、デフォルトではオフになっています。したがって、デフォルトでは、CSVファイルが壊れてしまいます(エクスポートが大きく、データに通常のコンマが含まれていない場合などは、気付かないかもしれません)。CSVをエクスポートするには、チェックボックスをクリックしてクリックする必要があります。正しく!

私には、これは非常に愚かな設計の選択であり、一般的なソフトウェアに対するMicrosoftのアプローチの適切な比喩のように見えます(「デフォルトで破られ、些細な機能を動作させるには意味のない儀式的なアクションが必要です」)。

しかし、誰かがこのオプションが存在する正当な現実の理由(つまり、それが役に立った実際のシナリオ)を1つ教えてくれた場合は、喜んで回答者の選択した慈善団体に100ドルを寄付します。


2

SQL Server 2014 Management Studioでは、設定は次の場所にあります。

[ツール]> [オプション]> [クエリ結果]> [SQL Server]> [テキストから結果]> [結果セットに列ヘッダーを含める]。


0

私も同じ問題に直面しています。クエリウィンドウで右クリックして[クエリオプション]を選択した場合。ただし、ヘッダー行は出力CSVファイルに表示されません。

次に、サーバーからログオフし、再度ログインしてスクリプトを実行します。その後、うまくいきました。


Include column headers when copying or saving the resultsオプションを変更してみましたか?このオプションは、ウィンドウの左側のナビゲーションペインでResults> を選択するとGrid表示されQuery Optionsます。
RBT 2019年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.