一貫性のある書式設定により、特に複数のユーザーが同じコードベースに貢献する場合に、Transact-SQL (T-SQL) の読み取り、確認、保守が容易になります。 Visual Studio CodeのMSSQL拡張機能には、オンデマンドで実行できる組み込みSQLフォーマッターが含まれており、セーブ時の自動フォーマット設定やVisual Studio Code設定によるカスタマイズが可能です。
MSSQL拡張機能のT-SQLフォーマット機能は、T-SQLを解析し抽象構文木に基づいてスクリプトを生成するオープンソースの.NETライブラリScriptDOMに基づいて構築されています。
オンデマンド形式
どのエディタウィンドウでもT-SQLをフォーマットできます。 フォーマッターは文書全体、または選択したテキストだけに動作します。
T-SQLをオンデマンドでフォーマットするには、以下のいずれかの方法を用いてください。
コンテキストメニュー:T-SQLエディタのウィンドウで右クリックし、「 ドキュメントフォーマット 」または 「フォーマット選択」を選択します。
コマンドパレット: Document Format または Format Selection を実行する。
キーボードショートカット:ドキュメントフォーマットは、WindowsとLinuxではShift+Alt+F、macOSではShift+Option+Fを押してください。 フォーマットの選択には、Windows と Linux では +K、Ctrl+F を、macOS では Cmd+K、Cmd+F を押してください。
保存時の書式
Visual Studio Codeでは、標準のエディタ設定が保存時にフォーマットを制御しており、専用のMSSQLフォーマタ設定ではありません。
ファイルを保存するたびにT-SQLを自動的にフォーマットするために、Visual Studio Code settings.jsonファイルの以下の設定を使ってください。
{
"[sql]": {
"editor.formatOnSave": true
}
}
書式設定オプションを構成する
Visual Studio Code設定UIやユーザー、ワークスペースsettings.jsonでフォーマットを設定してください。
設定エディターで「 Mssql>Format 」を検索して利用可能なオプションを確認してください。
settings.jsonでは対応するmssql.format.*設定を使いましょう。
サポートされている設定
以下の設定でSQLフォーマッターを設定できます。
General
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.showParseErrorNotification |
bool | true |
フォーマッターがT-SQLを完全に解析できない場合は通知を表示します。 |
mssql.format.options.sqlVersion |
列挙型 | sql170 |
T-SQLバージョンは、解析やフォーマット済みスクリプトの生成に使われていました。 |
mssql.format.options.sqlEngineType |
列挙型 | all |
データベース エンジンタイプ フォーマット済みスクリプトの解析および生成に使用されます。 有効な値は、 all、 standalone、および sqlAzureです。 |
位置合わせ
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.alignClauseBodies |
bool | true |
FROM、WHERE、GROUP BY、および同様の句の本体を配置します。 |
mssql.format.options.alignColumnDefinitionFields |
bool | true |
名前、データ型、制約などの列定義フィールドを揃えてください。 |
mssql.format.options.alignSetClauseItem |
bool | true |
SET ステートメント内の UPDATE 句項目を整列します。 |
mssql.format.options.clauseBodyAlignment |
列挙型 | aligned |
句本体はキーワードと同じ行に aligned 保つか、indented のように次の行に配置してください。 |
ケースと識別子
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.builtInFunctionCasing |
列挙型 | preserve |
GETDATEやCOALESCEなど、サポートされる組み込み関数名のケーススタイル。 有効な値は、preserve、uppercase、lowercase、および pascalCase です。 |
mssql.format.options.identifierBracketing |
列挙型 | preserve |
識別子の周りにオプションの角括弧を保持、追加、または削除してください。 有効な値は、 preserve、 includeBrackets、および excludeBracketsです。 必要な括弧は保持されます。 |
mssql.format.options.identifierCasing |
列挙型 | preserve |
オブジェクト識別子のケーススタイル。 有効な値は、preserve、uppercase、lowercase、および pascalCase です。 |
mssql.format.options.keywordCasing |
列挙型 | uppercase |
キーワードの大文字/小文字の表記スタイル。 有効な値は、 uppercase、 lowercase、および pascalCaseです。 |
経路
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.allowExternalLanguagePaths |
bool | true |
外部言語コンテンツがファイルパスを使えるようにします。 |
mssql.format.options.allowExternalLibraryPaths |
bool | true |
外部ライブラリのコンテンツがファイルパスを使用できるようにします。 |
Formatting
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.asKeywordOnOwnLine |
bool | true |
ASを独自の行に配置します。 |
mssql.format.options.columnAliasStyle |
列挙型 | asKeyword |
列のエイリアスは AS、等号、または元の構文でフォーマットします。 有効な値は、 asKeyword、 equalsSign、および preserveです。 |
mssql.format.options.commaPlacement |
列挙型 | trailing |
リスト項目の最後にはカンマを付けてください(trailing)または次の項目の先頭にはleading。 |
mssql.format.options.leadingCommaSpaceCount |
整数 | 1 |
先頭のカンマの後にあるスペース数。 有効値は 0 または 1 です。 |
mssql.format.options.persistTrailingGo |
bool | false |
元のスクリプトの末尾にある GO バッチ区切りを保持してください。 |
mssql.format.options.preserveComments |
bool | true |
書式設定中にコメントを保持します。 |
mssql.format.options.terminateBlockStatements |
bool | false |
BEGIN...END ブロックと TRY...CATCH ブロックの後にセミコロンを追加します。 |
[インデント幅]
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.indentSetClause |
bool | false |
UPDATE ステートメント内の SET 句をインデントします。 |
mssql.format.options.indentViewBody |
bool | false |
VIEW 本文をインデントします。 |
Multiline
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.multilineGroupByElementsList |
bool | false |
要素 GROUP BY 多行リストとしてフォーマットしてください。 |
mssql.format.options.multilineHavingPredicatesList |
bool | true |
AND または OR で区切られた述語 HAVING を複数行にわたって整形します。 |
mssql.format.options.multilineInsertSourcesList |
bool | true |
ソース INSERT マルチラインリストとしてフォーマットしてください。 |
mssql.format.options.multilineInsertTargetsList |
bool | true |
INSERT列を多行リストとしてフォーマットしてください。 |
mssql.format.options.multilineInValuesList |
bool | false |
IN述語の値をマルチラインリストとしてフォーマットします。 |
mssql.format.options.multilineNestedFunctionCalls |
bool | false |
ネストされた関数呼び出しはそれぞれインデントした別の行に整形し、単独の関数呼び出しは1行のままにします。 |
mssql.format.options.multilineOrderByElementsList |
bool | false |
要素 ORDER BY 多行リストとしてフォーマットしてください。 |
mssql.format.options.multilinePartitionByElementsList |
bool | false |
ウィンドウ仕様の要素 PARTITION BY マルチラインリストとしてフォーマットできます。 |
mssql.format.options.multilineProcedureParametersList |
bool | false |
手順と関数パラメータを別々のラインでフォーマットします。 |
mssql.format.options.multilineSelectElementsList |
bool | true |
SELECT列を多行リストとしてフォーマットしてください。 |
mssql.format.options.multilineSetClauseItems |
bool | true |
SET 条項目を複数行のリストとして書式設定します。 |
mssql.format.options.multilineViewColumnsList |
bool | true |
VIEW列を多行リストとしてフォーマットしてください。 |
mssql.format.options.multilineWherePredicatesList |
bool | true |
WHERE 述語を複数行のリスト形式でフォーマットします。 |
mssql.format.options.multilineWithOptionsList |
bool | false |
WITH と OPTION の clause 値を別々の行に表示できるようになりました。 |
新しい行
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.newLineAfterJoinKeyword |
bool | true |
JOINキーワードの後に新しい行に結合テーブルソースを配置します。 |
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList |
bool | true |
多行リストの終章括弧の前に新しい行を置きます。 |
mssql.format.options.newLineBeforeFromClause |
bool | true |
FROM条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeGroupByClause |
bool | true |
GROUP BY条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeHavingClause |
bool | true |
HAVING条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeJoinClause |
bool | true |
節の前に新しい行 JOIN 入れてください。 |
mssql.format.options.newLineBeforeOffsetClause |
bool | true |
OFFSET条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeOnClause |
bool | true |
新しい行にジョインの ON 節を置きます。 |
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList |
bool | false |
複数行リストの冒頭括弧の前に新しい行を置きます。 |
mssql.format.options.newLineBeforeOrderByClause |
bool | true |
ORDER BY条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeOutputClause |
bool | true |
OUTPUT条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeWhereClause |
bool | true |
WHERE条項の前に新しい行を付けてください。 |
mssql.format.options.newLineBeforeWindowClause |
bool | true |
WINDOW条項の前に新しい行を付けてください。 |
mssql.format.options.newlineFormattedCheckConstraint |
bool | false |
制約の CHECK 句は単独の行に配置します。 |
mssql.format.options.newLineFormattedIndexDefinition |
bool | false |
インラインインデックス定義の UNIQUE、 INCLUDE、 WHERE 部分を別々の行に配置します。 |
ステートメントとバッチの間隔
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.numNewlinesAfterBatches |
整数 | 1 |
各 GO バッチセパレーターの後に 0 から 5までのラインブレークの数があります。 |
mssql.format.options.numNewlinesAfterBatchStatement |
整数 | 2 |
バッチ内の各トップレベル ステートメントの後に入れる改行数を、0 から 5 までの範囲で指定します。 |
mssql.format.options.numNewlinesAfterStatement |
整数 | 1 |
各文の後に折行数が 0 から 5まであります。 |
Spacing
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.spaceBetweenDataTypeAndParameters |
bool | true |
例えば、データ型とその括弧の間にスペースを挿入します。例えば VARCHAR (255)。 |
mssql.format.options.spaceBetweenParametersInDataType |
bool | true |
例えば、データ型のパラメータ間にスペースを挿入します。例えば DECIMAL (10, 2)。 |
設定ファイルの例
{
"mssql.format.options.keywordCasing": "lowercase",
"mssql.format.options.alignClauseBodies": false,
"mssql.format.options.numNewlinesAfterStatement": 2,
"[sql]": {
"editor.formatOnSave": true
}
}
デフォルトのフォーマッターを設定する
MSSQL拡張をデフォルトに設定するには、「Configure Default Formatter...」を選択してください>SQL Server(mssql)をsettings.jsonに、または以下の構成を追加してください:
{
"[sql]": {
"editor.defaultFormatter": "ms-mssql.mssql"
}
}