T-SQLフォーマッター
SQLをSQL ServerおよびAzure SQL向けに整形します。[bracket]形式の識別子、N'' Unicode文字列、#tempテーブル、@variables、GOバッチ区切りのルールに対応しています。CROSS APPLYとOUTER APPLYは新しい行から始まり、OUTPUTとFOR JSONは句として維持されます。また、BEGIN TRANSACTIONが誤ってブロックを開始することはありません。閉じられていない文字列や括弧は、データベース開発者向けに行番号と列番号とともに報告されます。
よくある質問
どのようなT-SQL構文に対応していますか?
]]によるエスケープを含む[角括弧]の識別子や二重引用符で囲まれた識別子、N'' Unicode文字列、#tempおよび##global一時テーブル、@variables、@@システム関数を認識します。geography::Pointのような静的メソッド呼び出しもそのまま保持されます。
GOバッチ区切りはどのように処理されますか?
GOのみを含む行は、GO 5のように繰り返し回数が付いていても、バッチの終わりとして扱われます。GOは独立した行に保持され、各バッチは個別に整形されます。
どのT-SQL句に対応していますか?
CROSS APPLYとOUTER APPLYは、JOINと同様に改行します。OUTPUT、OPTION、FOR XML、FOR JSONは、標準的な句と並ぶ独立した句として保持されます。
ストアドプロシージャを整形できますか?
はい。BEGINとENDのブロック、BEGIN TRYとBEGIN CATCH、IFとELSE、WHILEループをインデントします。BEGIN TRANSACTIONとBEGIN TRANは文として扱い、ブロックの開始とはみなしません。
MERGE に対応していますか?
はい。WHEN MATCHED、WHEN NOT MATCHED BY TARGET、WHEN NOT MATCHED BY SOURCEの各分岐は改行します。
コメントは保持されますか?
はい。--行コメントと/*ブロックコメント*/は位置を保ちます。複数行のブロックコメントは、新しい位置に合わせてインデントし直します。
キーワードの大文字と小文字は変わりますか?
いいえ。キーワードと識別子の大文字・小文字は入力時のまま保持されます。変更されるのは空白と改行だけです。
どのようなエラーが検出されますか?
閉じていない文字列、角括弧または引用符で囲まれた識別子、ブロックコメント、対応していない括弧を、それぞれ行と列を示して報告します。このツールはSQL Serverに接続せず、オブジェクト名も検証しません。
入力の最大サイズはどれくらいですか?
1リクエストあたり最大1 MB、文またはバッチあたり最大128 KBです。文は空行で区切られます。
インデントを選べますか?また、SQLは保存されますか?
スペース2つ、スペース4つ、またはタブを使用できます。スクリプトはメモリ上でのみ整形され、保存されることはありません。