SQL Server Management StudioでSQLをフォーマットする


250

Visual Studioおよびその他のIDEでは、キーボードショートカットを使用して、メニューから、または入力時に自動的に、コードを簡単に自動フォーマットできます。

SQL Server Management Studioでこの標準機能を有効にする方法がまだあるかどうか疑問に思っていましたか?

私は、不十分にフォーマットされたSQLの混乱した混乱であるいくつかの大規模なストアドプロシージャを使用しており、「すべて選択-> SQLのフォーマット」に進むことができればいいと思います


1
SQLinFormはホットキー機能を提供
Guido

1
現在、無料のオンラインフォーマッターが用意
Guido


Qが話題になるように更新
Andrew

回答:


270

遅い答えですが、価値があると期待しています:The Poor Man's T-SQL Formatter is a open-source(free)T-SQL formatter with complete T-SQL batch / script support(any DDL、any DML)、SSMS Plugin、command-line bulkフォーマッタ、およびその他のオプション。

これはhttp://poorsql.comで即時/オンラインで使用でき、本日「バージョン1.0」(数か月間はベータ版でした)にアップグレードされ、MERGEステートメント、OUTPUT句、およびその他の厄介なもののサポートを取得しました。

SSMSアドインを使用すると、独自のホットキー(デフォルトはVisual Studioと一致するようにCtrl- KCtrl- F)を設定でき、スクリプト全体または選択したコード(ある場合)だけをフォーマットします。出力フォーマットはカスタマイズ可能です。

SSMS 2008では、組み込みのインテリセンスとうまく結合し、Red GateのSQLプロンプトとほぼ同じ基本機能を効果的に提供します(SQLプロンプトには、もちろん、スニペット、クイックオブジェクトスクリプトなどの追加機能があります。等)。

フィードバックや機能のリクエストは大歓迎です。機会があればぜひ試してみてください。

開示:これはおそらくすでに明白ですが、私はこのライブラリ/ツール/サイトを作成したので、この答えも恥知らずな自己宣伝です:)


2
SQL Server 2012では、デフォルトのCtrl + K、Ctrl + Fショートカットは、すでにFormat Selectionにバインドされていると表示されているため、機能しません。からDataWarehouse Designer::Ctrl+k, Ctrl+fに変更すると機能しましたGlobal::Ctrl+k, Ctrl+j
マルコラッコビッチ2015

5
SSMS 2014 instalationsためのヒントを参照stackoverflow.com/questions/23303026/...
アレクサンダーSigachov

2
優れた

1
@ dman2306-2016(および17)と互換性のあるインストーラーが利用可能になりました。
タオ

2
@ジョーダン:Windows 10では、.Net Framework 3.5 SP1(.Net 2.0を含む)はウィンドウのオプション機能であり、「Windowsの機能をオンまたはオフにする」画面/機能で有効にできます。これは「.NET Framework 3.5(.NET 2.0および3.0を含む)」と呼ばれ、オプション機能のリストの一番上にあります-これは機能しませんか?(はい、申し訳ありませんが、この日と年齢で.Net 2.0を要求することはおそらく合理的ではありません...作成された問題github.com/TaoK/PoorMansTSqlFormatter/issues/199で追跡)
Tao

137

偶然発見した特殊なトリックがあります。

  1. フォーマットするクエリを選択します。
  2. Ctrl+ Shift+ Q(これにより、クエリデザイナーでクエリが開きます)
  3. 次に、OK OKを実行します。クエリデザイナがクエリをフォーマットします。警告は、これはステートメントに対してのみ実行でき、手続き型コードに対しては実行できませんが、何もしないよりはましです。

9
いいヒント。悲しいことに、この方法は機能しますが、かなり貧弱な仕事です。しかし、少なくとも何かが組み込まれています。
ジョンホーマー

それはフォーマットされましたが、予期された方法ではありませんでした。とにかく、何もないよりはましだ:).....先端をありがとう。
Jaini Naveen 2013

2
ええと、私が知る限りでは、それは本当に最善の仕事をするわけではありませんが、何かを実行し、すぐに使えるので、あなたはそれを支払う必要はありません。しかし、1人だけが、それを「役に立つ」と考えていました。私は本当に驚いた、私はこれを釘付けにしたと思った;-)
Justin

1
同様に、クエリが新しいビューに貼り付けられたときにフォーマットされていることを発見しました。しかし、これははるかにきれいです... +1。
Feckmore 2014年

16
これは、クエリの内容がグラフィカルに表現できる場合にのみ機能します。
kbvishnu 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.