一貫性のある書式設定により、特に複数のユーザーが同じコードベースに貢献する場合に、Transact-SQL (T-SQL) の読み取り、確認、保守が容易になります。 Visual Studio CodeのMSSQL拡張機能には、オンデマンドで実行したり、セーブ時の自動フォーマットを設定したり、Visual Studio Codeの設定でカスタマイズできる組み込みSQLフォーマッター(プレビュー)が含まれています。
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.*設定を使いましょう。
プレビューフォーマッターはデフォルトで有効です。 オプションは
mssql.format.options.*名前空間を使用しています。プレビューフォーマットが有効になっても、既存の5つのフォーマット設定は引き続き利用可能です。 プレビューフォーマッターは
mssql.format.options.*設定を追加します。
サポートされている設定
テーブルには既存のフォーマター設定が一覧で、その後にプレビューフォーマッターの設定が続きます。
既存のフォーマッター設定
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.alignColumnDefinitionsInColumns |
bool | false |
列の定義を列に揃えましょう。 |
mssql.format.datatypeCasing |
列挙型 | none |
データ型は uppercase、 lowercase、または非フォーマットのまま none としてフォーマットしてください。 |
mssql.format.keywordCasing |
列挙型 | none |
キーワードは uppercase、 lowercase、 none (フォーマットなし)としてフォーマットしてください。 |
mssql.format.placeCommasBeforeNextStatement |
bool | false |
リストの各項目の先頭にはコンマを置きましょう。例えば , mycolumn2のように、最後に置くのではなく、 mycolumn1,のように。 |
mssql.format.placeSelectStatementReferencesOnNewLine |
bool | false |
参照は SELECT 文の中の別々の行に配置します。
SELECT C1, C2 FROM T1では、C1とC2はそれぞれ別の路線にあります。 |
プレビューフォーマッター設定
これらの mssql.format.options.* 設定は、プレビューフォーマットを有効にすると既存のフォーマット設定に加えて追加されます。
General
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.enablePreviewFormatter |
bool | true |
SQLフォーマッター(プレビュー)を使ってください。 |
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 句項目を整列します。 |
経路
| 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.keywordCasing |
列挙型 | uppercase |
キーワードの大文字/小文字の表記スタイル。 有効な値は、 uppercase、 lowercase、および pascalCaseです。 |
mssql.format.options.preserveComments |
bool | true |
書式設定中にコメントを保持します。 |
mssql.format.options.numNewlinesAfterStatement |
int | 1 |
各文の後に折行数が 0 から 5まであります。 |
インデント
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.indentSetClause |
bool | false |
SET ステートメント内の UPDATE 句をインデントします。 |
mssql.format.options.indentViewBody |
bool | false |
本文をVIEW字下げします。 |
複数行
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.multilineInsertSourcesList |
bool | true |
INSERT ソースを複数行として扱います。 |
mssql.format.options.multilineInsertTargetsList |
bool | true |
INSERT 列を複数行で表示します。 |
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 述語を複数行として扱います。 |
新しい行
| Setting | タイプ | Default | Description |
|---|---|---|---|
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.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 |
Newlineは制約 CHECK フォーマット。 |
mssql.format.options.newLineFormattedIndexDefinition |
bool | false |
改行形式のインデックス定義。 |
Spacing
| Setting | タイプ | Default | Description |
|---|---|---|---|
mssql.format.options.spaceBetweenDataTypeAndParameters |
bool | true |
例えば、データ型と括弧の間のスペース、 VARCHAR (255)。 |
mssql.format.options.spaceBetweenParametersInDataType |
bool | true |
データ型のパラメータ間のスペース。 |
設定ファイルの例
{
"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"
}
}