目次
- TSQLフォーマットオプション
- インパクトプレビュー
- SQLフォーマッタープロファイル
- SQLフォーマッタープロファイルのインポート/エクスポート
- オブジェクトをバッチでフォーマットする
- T-SQLスクリプトをバッチでフォーマットする
- ホスト統合
- 高DPIおよび4K解像度のサポート
大量の乱雑でフォーマットされていないテキストをチェックして読むことを好む人は誰もいません。複雑なSQLコードを読み取る場合、特に問題を解決する必要がある場合は、問題がさらに困難になる可能性があります。
SQLコードは、読みやすいスタイルでフォーマットできます。 、特にチーム全体が同じものを使用している場合。クリーンで適切にフォーマットされた(一貫性のある)SQLコードは、チームメンバー間や異なるオブジェクト間、またはオブジェクト自体の同じスクリプト内であっても、一貫性のない記述のSQLコードよりもはるかに高速に読み取ることができます。適切に編成およびフォーマットされたSQLコードは、より効率的にレビューできます。適切にフォーマットされたSQLコードを使用してプロジェクトを別のチームまたはクライアントに渡すことは、はるかにスムーズであり、はるかに高く評価されます。
SQLスクリプトのフォーマットに関する主な問題は、SQLのスタイルや標準がないことです。コードはフォーマットする必要があり、すべては一般的に好みの問題です。ここでの最善の解決策は、あなたと社内のチームが固執する基準を設定し、それらが一貫して適用されることを確認することです。
すべてのSQLコードは手動でフォーマットできるため、非常に時間がかかります。ただし、サードパーティのツールは存在し、迅速かつ効率的にフォーマットするために使用できます。
この記事では、目標を達成するために完璧なSQLクエリフォーマッタツールが持つべき基本的なガイドラインと期待について説明し、紹介します。一貫性のある標準のフォーマットスタイル(標準)を確立し、そのスタイルを1つのT-SQLスクリプトまたは多数のT-SQLスクリプトまたはオブジェクトにワンクリックで適用する方法。
そのようなフォーマットツールの1つは、ApexSQLリファクターです。 SQL Server Management Studio(SSMS)またはVisual Studio(VS)に統合できるアドイン。 ApexSQLリファクタリングには、1つまたはバルクのT-SQLスクリプトにスタイルを一度に適用するための200を超えるSQLクエリフォーマットオプションと機能があります。
オプション
最初の目標は、基本的なオプションを設定することです。標準を確立する際の主な懸念事項の1つは、コードで大文字にするかどうかのT-SQLキーワードです。
[オプション]ウィンドウの[大文字]タブで、大文字と小文字の規則を設定できます。次のようになります:
大文字の使用に適切なルールを設定するには、大文字、小文字、小文字、小文字、大文字、大文字のオプションを使用できます。 、大文字、またはオプションの選択を解除してデフォルトのSQLクエリレイアウトルールをそのままにする:
一部の開発者はSQLキーワード、データタイプを好みますなどを大文字にするなど、他の開発者はSQLキーワードを小文字にするのが好きです。
ツールを選択する際の最善の解決策は、これらのさまざまな設定をすべて処理できるツールを選択することです。
最初の例では、キーワードは大文字で、データタイプは小文字です。
2番目の例、キーワードは小文字とda taタイプは大文字です:
3番目の例、キーワードとデータタイプは大文字です:
SQLフォーマッターの影響プレビュー
すべてのSQLレイアウトツールに必要な重要なことの1つは、視覚的にプレビューできることです。いくつかのオプションを追加した後のSQLコードの外観。
ApexSQLリファクタリングにはSQLコード形式の影響プレビューがあり、オプションを変更するとすぐにその影響を明確に把握できます。外観が気に入らない場合は、保存せずに簡単に変更および元に戻すことができます。
大文字化のルールを設定するSQLキーワード、データ型、識別子(オブジェクト名)、システム関数、変数は、スタイルのセットの1つの項目にすぎません。
エイリアス、コメント、コンマ、間隔、整列、のSQLコードレイアウトルール優れた、一貫性のある、読みやすく、適切にフォーマットされたSQLコードを作成するには、同様に設定する必要があります。
上記のすべてについて、フォーマットツールツールには、これらを設定するためのオプションが必要です。 SQLクエリのスタイリングルール。
ApexSQL Refactorには、要件を満たすためのこれらすべてのオプションがあります。SQLフォーマッタオプションの詳細については、以下のリンクを参照してください。
- SQLフォーマットの規則–T-SQLのカンマと間隔
- SQLフォーマットの規則–通常および区切りT-SQL識別子
- SQLフォーマットのルール–SQLコードのコメント
- SQLフォーマットのルール–SQLの命名規則と大文字のルール
- SQLフォーマットのルール–終了セミコロン付きのSQLステートメント
SQLクエリフォーマッタプロファイル
目的のスタイルを設定し、そのスタイルを保存し、同僚とスタイルを共有できることは、すべてのSQLServerのもう1つのことです。フォーマッタツールが必要です。また、事前設定されたプロファイルを事前に選択しておくと、すぐに使用できるので非常に便利です。
ApexSQL Refactorを使用すると、ユーザーは次のことができます。
- 優先保存再利用可能なプロファイルへのSQLクエリフォーマッタオプション
- フォーマットスタイルのグループ化と分類
- 既存のプロファイルの迅速な変更
- 他のユーザーとの競合の回避
さらに、ApexSQLリファクタリングには4つの組み込みプロファイルが付属しています
- ApexSQL –優れたSQLフォーマッタ標準であると判断したものが含まれています
- コンパクト–インデントオプションを設定します0(ゼロ)スペースにすると、追加のスペースはすべてオフになり、SQLコードが密に見えるクエリの空の行が削除されます。
- 拡張–コンパクトプロファイルの反対です。このプロファイルは、すべてのステートメント、コメントの前後に空の行を追加します。算術論理演算子の周囲にスペースを追加します
- MSDN SQL BOL –MSDNリソースサイトで使用されているスタイルを模倣します
これらの4つの組み込みプロファイルは変更できません、ただし、これらの組み込みSQLクエリフォーマッタプロファイルのコピーは、[コピー]ボタンをクリックして作成し、適切な方法で変更できます。
また、[新規]ボタンをクリックして新しいSQLフォーマッタプロファイルを作成できます。
SQL形式プロファイルのインポート/エクスポート
完璧なプロファイルを作成したら、それをエクスポートして他の人がアクセスできるようにすることが重要です。また、プロファイルの受信者がプロファイルを簡単にインポートできるようにします。 ApexSQLリファクタリングはまさにこの機能を提供します
プロファイルをエクスポートして同僚と共有するには、[オプション]ウィンドウの[エクスポート]ボタンを押します。
[オプション]ウィンドウでプロファイルをインポートするには、[インポート]ボタンを押します。
ApexSQLリファクタリングプロファイルの詳細については、[SQLフォーマットプロファイルをカスタマイズする方法]ページを参照してください。
オブジェクトをバッチで処理する
フォーマットプロファイルが作成され、オプションが設定されると、一度に1つのオブジェクトまたはスクリプトを使用してSQLコードのフォーマットを本格的に開始できます。しかし、データベース内のすべてを一度に処理するのはどうでしょうか?
ストアドプロシージャなどの多くのSQLオブジェクトを個別に処理することは、もちろん非常に困難で時間のかかる作業になる可能性があります。
、もう1つ追加できるのは、各フォーマットツールには、複数のSQLオブジェクトを単一の目的のSQLプロファイルで一度にフォーマットできる機能が必要であるということです。
ApexSQLリファクタリングには、正確に許可するSQLオブジェクトのフォーマット機能があります。それ。オブジェクトエクスプローラーで、フォーマットするオブジェクトが配置されているデータベースを選択し、右クリックして、コンテキストメニューから[SQLオブジェクトのフォーマット]コマンドを選択します。
すべてのスクリプトベースのオブジェクト(例:ビューでは、ストアドプロシージャが[SQLオブジェクトのフォーマット]ウィンドウに一覧表示されます。
[プロファイル]コンボボックスで、目的のSQLを選択します。フォーマッタプロファイル(ApexSQLなど)を選択し、リストからフォーマットするSQLオブジェクトを選択し、[スクリプトの作成]ボタンをクリックして、クエリエディタでスクリプトを開き、[実行(F5)]ボタンをクリックします。
SQLオブジェクトが目的のプロファイルでフォーマットされていることを確認するには、[SQLオブジェクトのフォーマット]ウィンドウに戻り、[プロファイル]コンボボックスで、プロファイルと、SQLオブジェクトリストの[OK]列の緑色のチェックマークアイコンの下に、フォーマットされているSQLオブジェクトが示され、他のすべてのSQLオブジェクトは、選択したプロファイルでフォーマットされていないことを示す赤いxアイコンでマークされます。 :
さらに、SQLオブジェクトスクリプトを目的のプロファイルでフォーマットする前に、同じSQLスクリプトを表示してユーザーに表示することができます。できますe処理後の外観。このように、リストから目的のSQLオブジェクトを選択し、右クリックして[比較]ボタンを選択することで比較できます。
バッチスクリプトT-SQL形式
適切なSQLレイアウトツールを選択する際に考慮する必要があるもう1つのことは、SQLスクリプトとスクリプトをフォルダー内のスクリプトにバッチでフォーマットする可能性です。
マシン上に、コードをチェックする必要のあるSQLスクリプトが多数あり、そのコードが下の画像のようにかなり混乱している状況では、次のようになります。
これらのSQLスクリプトのコードを確認するのは難しい場合があります。
これに対する1つの解決策は、SSMSでSQLスクリプトを開き、 [SQLのフォーマット]ボタンをクリックして、好みのプロファイルでフォーマットします。
これにより、1つのSQLスクリプトの問題が解決されますが、これらのSQLスクリプトが多いほど、より迅速なソリューションを提供する必要があります。
ApexSQL Refactorは、この種の問題のソリューションとしてSQLスクリプトのフォーマット機能を提供します。 [ApexSQLリファクタ]メニューの[その他の書式設定]サブメニューで、[SQLスクリプトの書式設定]コマンドを選択します。
SQLの書式設定スクリプトウィンドウが開き、リストでSQLスクリプトをナビゲートして選択し、[プロファイル]コンボボックスで目的のSQLフォーマッタプロファイルを選択して、[OK]ボタンを押します。
選択したSQLスクリプトのすべてのコードは、SQLスクリプトのレビューがはるかに簡単になる目的のSQLフォーマッタースタイルでフォーマットされます。
ホスト統合
もう1つの重要な適切なSQLスタイリングツールを選択する際の項目は、SSMSやVisualStudioなどのSQLコーディングに通常使用するホストアプリケーションへの直接統合です。
幸い、ApexSQLRefactorはSSMS2012以降からの統合をサポートし、Visualへの統合をサポートします。 VS2010バージョン以降のStudio。
これは、強力なSQLフォーマッター機能を追加し、コーディングの生産性を向上させることができることを意味します。お気に入りのエディターのホーム
シームレスなホスト統合と一貫したユーザーエクスペリエンス
ホストアプリケーションへの統合は1つのことです。一貫したエンドユーザーエクスペリエンスとシームレスに統合することも別の方法です。多くのアドインは悪いゲストであり、メニュースペースを占有し、色やアイコンがばらばらで、一般的に視覚的に「大音量」で邪魔になります。ApexSQLRefactorは、IDE自体の一部であるかのように、ホスト環境にシームレスに溶け込む丁寧なゲストです。この一貫したユーザーエクスペリエンスには、アイコン、ビジュアルスタイル、テーマが含まれます。
カラーテーマを使用すると、ユーザーは好みに合わせて外観を変更でき、優れたサードパーティツールがこの機能に一致する必要があります。ApexSQLリファクタリングはSSMSとビジュアルカラーをサポートしていますテーマですが、ホストテーマの設定に合わせて自動的に変更されます。
詳細については、この記事を参照してください。
Visual Studioの暗い色のテーマ:
SSMS青色のテーマ:
1つのメモ、ApexSQLリファクタリングはSSMSダークカラーテーマをサポートしています:
カラーテーマはまだ公式ではありませんが、 dを設定する方法を知っているSSMS 17のアークカラーテーマは、SQLServerマネジメントスタジオページのダークテーマの設定にあります。
さらに、ApexSQLリファクタリングのコマンド、ダイアログ、テンプレートなどに表示されるすべてのアイコンが継承されます。 VisualStudioイメージライブラリから。ライブラリの一部のアイコンは、より直感的でシンプルに再設計され、簡単に認識できるシンボルになっています。
Visual Studioのビジュアル言語辞書で、アイコン、色、その他の視覚的概念の詳細を確認できます。 ApexSQLツール/アドインページ。
高DPIおよび4K解像度のサポート
ApexSQLリファクタリングは高DPIおよび4K解像度をサポートします。つまり、ApexSQLリファクタリングの実行時にウィンドウ(オプションウィンドウなど)がサポートされます。 )すべてのSQLフォーマッターオプションを設定すると、4Kモニターで画面がぼやけることはありません:
注:VS 4Kと高DPIを非常にうまく処理しますが、SSMSは4Kモニターではあまりうまく機能しません。 SSMS 2016以降の4Kおよび高DPIの問題については、SSMS(SQL Server Management Studio)で高DPIを有効にする方法–ヒント、コツ、および問題のページに記載されている解決策があります。