SSMS 2012でのT-SQLのフォーマット


39

このMicrosoftドキュメントによると:

http://msdn.microsoft.com/en-us/library/ms174205.aspx

ctrl + K、次にctrl + Dを使用してSQL Server Management Studio 2012でSQLドキュメントをフォーマットできるはずですが、そのコンボを使用するとエラーが発生します。

キーの組み合わせ(Ctrl + K、Ctrl + D)は、現在使用できないコマンド(ドキュメントのフォーマット)にバインドされています。

書式設定がまったくない既存のSQLドキュメントに変更を加えようとしているため、非常に読みにくくなっています。Format Codeコマンドを使用可能にする方法を誰もが知っているので、このコードをSQL形式にできますか?


この声明Available only in the text editorは、テクノロジーライターのネガティブを明示的に呼び出さずに「クエリエディターではない」と言っている方法だと思う
-billinkc

1
@billinkcそれはまったく正しいとは思いません。テキストエディターは、Transact-SQLとXMLの両方に使用される「クエリエディター」であり、XMLを処理する場合、実際にはクエリエディターではありません。ドキュメンテーションは少し前途有望だと思うので、Connectアイテムについてコメントしました
アーロンバートランド

回答:


42

あなたが望んでいるキーボードの組み合わせ(Ctrl+ KCtrl+ D)は「フォーマット」のためです-しかし、あなたが期待する範囲ではありません。プリティファイアではなく、正しいスペースとタブを挿入するために使用されますTools > Options > Text Editor > Transact-SQL > General/Tabs-したがって、テキストの一部を強調表示してキーボードの組み合わせを押すと、タブを4つのスペースに変換することになります(挿入を選択した場合スペース)、指定したインデントの種類などを適用します

このオプションは、コードを読みやすくするためのものではありません。これは、Management Studioが現在ネイティブに提供している機能ではありません。サードパーティのオプションがいくつかありますが、一部はManagement Studioの外部にあります。

また、エディター内にはさまざまなレベルのフォーマット支援用のアドインもあります。

さて、あなたがメッセージを受け取っている理由...

キーの組み合わせ(Ctrl + K、Ctrl + D)は、現在使用できないコマンド(ドキュメントのフォーマット)にバインドされています。

...これは、SSMSがそのキーの組み合わせを別のコンテキストにマップしたためです。あなたが道べきで再び、それはまだ「修正」が働いていた場合でも、あなたはそれが何をしたいのかしないだろう- -これが「修正」のことができるように、以下を実行しています:

  1. に行く Tools > Options > Environment > Keyboard
  2. Press shortcut keys:ボックスにカーソルを置きます
  3. ヒットCtrl+ KCtrl+D
  4. Shortcut currently used by:ドロップダウンをからDataWarehouse Designerに変更しますText Editor

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

  5. OKを押す

今、これはキーボードの組み合わせをテキストエディターにマップすることになっていますが、Management StudioはOKを押すと元に戻ります(エラーメッセージは引き続き表示されます。したがって、問題はドキュメントがこの機能が存在すると信じていることですが、Management Studioはより良く知っており、単にそれを提供しません(そして、Microsoftはおそらくツールの欠点ではなく、ドキュメントのバグとしてこれを取り消し、修正します)。将来は希望があるかもしれませんが、今のところ、これは既知であり、ほとんど無視されている問題です。ドキュメントが参照しているFormattingタブは存在しないことに注意してください(ただし、キーボードの組み合わせが機能するXMLにはあります)。

[ オプション ]ダイアログの[ テキストエディター ] セクションの言語の[ 書式設定]ペインで指定された言語のインデントとスペースの書式設定を適用します。テキストエディタでのみ、特定の言語でのみ使用できます

SSMSがネイティブに提供するフォーマットオプションの種類を知るもう1つの方法は、Tools > Customize > Commands > Edit > Add Command... > Formatそこにある可能なコマンドのリストにアクセスして調べることです。実際の言語の知識がないことを示すものは何もないので、改行を挿入したり、追加のインデントを追加したり、括弧などを使用したりする場所を知りません。

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

既存のT-SQLコードを読みやすくするために言語固有の書式設定が必要な場合は、SSMSから多くを得ることができず、他のオプションを探す必要があります。


1
SSMS 2016でOPとアーロンが説明したのと同じ症状と動作を経験しました。しかし、私はそれを適切に機能させることができました。キーは、Ctrl+K, Ctrl+D最初にRemoveボタンを使用してバインドされたすべてのコマンドを削除してから、上記で定義したように、キーボードをバインドするためのAaronの4ステッププログラムに従います(Tools > Options > Environment > Keyboard)。以下Optionsは、すべてが設定された後のダイアログボックスのスクリーンショットです:pasteboard.co/GDYkh3h.jpg
マスドットネット

このコメントが答えとしてリストされていない理由は、あなたが言ったことをすることで私にとってはうまくいくからです。
クリストファー

12

これがSSMSで可能であるとは思わない。この機能用に開かれた接続アイテムがありました。

私が個人的にフォーマットの悪いSQLコードに使用したいのは、Poor SQLの Webアプリケーションです。SQLコードを仕様に合わせてフォーマットするという非常に素晴らしい仕事をします。必要に応じてHTMLを生成することもできます。私は、SSMSプラグインや広告する他の成果物を使用しません。サイトですばやくフォーマットを行い、SSMSにコピー/貼り付けするだけです。


貧弱なSQLに関するヒントをありがとう。確かにそれを私の後ろのポケットに入れておきます!
クリスGruttemeyer

3
もう1つの優れた機能(ブログのコードの書式設定にも便利)は、Simple-TalkのSQL Prettifierです。
アーロンバートランド

Microsoftのドキュメントではフォーマットできると書かれていても、SSMSではできませんか?

貧弱なSQLには、Notepad ++用のプラグインもあります。ただし、SSMSプラグインを使用しない理由はわかりません。彼らがようやくSSMS 2012+で機能するようになったので、今ではうまく機能しています。
ジョナサンファイト


2

SqlSmashは、SSMS 2012および2014でSQL(など)をフォーマットできる商用ツールです。デフォルトのキーボードショートカットは(Ctrl + K、Ctrl + D)です。
免責事項:私はその背後にある開発者です。


ツールが無料ではないことを追加してください。
ypercubeᵀᴹ

無料のコミュニティバージョンがあります。
ジェイソンガイガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.