Formatar Transact-SQL na extensão MSSQL para Visual Studio Code

A formatação consistente torna Transact-SQL (T-SQL) mais fácil de ler, rever e manter, especialmente quando várias pessoas contribuem para a mesma base de código. A extensão MSSQL para Visual Studio Code inclui um formador SQL incorporado que pode executar a pedido, configurar para formatação automática no save e personalizar através das definições do Visual Studio Code.

A funcionalidade de formatação T-SQL na extensão MSSQL é construída sobre o ScriptDOM, uma biblioteca .NET de código aberto que analisa T-SQL e gera scripts baseados em árvores de sintaxe abstratas.

Formato sob demanda

Podes formatar o T-SQL em qualquer janela do editor. O formador funciona no documento inteiro ou apenas no texto que seleciona.

Para formatar T-SQL a pedido, utilize um dos seguintes métodos:

  • Menu de contexto: Clique com o botão direito numa janela do editor T-SQL e selecione Formatar Documento ou Seleção de Formato.

  • Paleta de Comandos: Executar Documento de Formato ou Seleção de Formato.

  • Atalho de teclado: Para Formatar Documento, pressione Shift+Alt+F no Windows e Linux, ou Shift+Option+F no macOS. Para seleção de formato, pressione Ctrl+K, Ctrl+F no Windows e Linux, ou Cmd+K, Cmd+F no macOS.

Formatar ao guardar

No Visual Studio Code, a definição padrão do editor controla o formato ao guardar, em vez de uma configuração dedicada de formateador MSSQL.

Use as seguintes definições no seu ficheiro Visual Studio Code settings.json para formatar T-SQL automaticamente sempre que guardar um ficheiro:

{
  "[sql]": {
    "editor.formatOnSave": true
  }
}

Configurar opções de formatação

Configure a formatação na interface de Definições do Visual Studio Code ou no utilizador ou espaço de trabalhosettings.json.

No editor de Definições, procure por Formato Mssql> para ver as opções disponíveis. Em settings.json, utilize as definições mssql.format.* correspondentes.

Configurações suportadas

As seguintes definições configuram o formatador SQL.

General

Configuração Tipo Predefinição Description
mssql.format.showParseErrorNotification bool true Mostrar uma notificação quando o formatador não conseguir analisar totalmente o T-SQL.
mssql.format.options.sqlVersion enumeração sql170 Versão T-SQL usada para analisar e gerar scripts formatados.
mssql.format.options.sqlEngineType enumeração all Tipo Database Engine usado para analisar e gerar scripts formatados. Os valores válidos são all, standalonee sqlAzure.

Alinhamento

Configuração Tipo Predefinição Description
mssql.format.options.alignClauseBodies bool true Alinhe os corpos de FROM, WHERE, GROUP BY e cláusulas semelhantes.
mssql.format.options.alignColumnDefinitionFields bool true Alinhe campos de definição de colunas, como nomes, tipos de dados e restrições.
mssql.format.options.alignSetClauseItem bool true Alinhar SET os itens das cláusulas nas UPDATE declarações.
mssql.format.options.clauseBodyAlignment enumeração aligned Mantém os corpos aligned das cláusulas com as suas palavras-chave ou coloca-as na linha seguinte como indented.

Carcaça e identificadores

Configuração Tipo Predefinição Description
mssql.format.options.builtInFunctionCasing enumeração preserve Estilo de carcaça para nomes de funções incorporadas suportados, como GETDATE e COALESCE. Os valores válidos são preserve, uppercase, lowercase e pascalCase.
mssql.format.options.identifierBracketing enumeração preserve Preserve, adicione ou remova colchetes quadrados opcionais em redor dos identificadores. Os valores válidos são preserve, includeBracketse excludeBrackets. Os colchetes obrigatórios são mantidos.
mssql.format.options.identifierCasing enumeração preserve Estilo de carcaça para identificadores de objetos. Os valores válidos são preserve, uppercase, lowercase e pascalCase.
mssql.format.options.keywordCasing enumeração uppercase Estilo de capitalização das palavras-chave. Os valores válidos são uppercase, lowercasee pascalCase.

Paths

Configuração Tipo Predefinição Description
mssql.format.options.allowExternalLanguagePaths bool true Permitir que conteúdos de línguas externas utilizem caminhos de ficheiros.
mssql.format.options.allowExternalLibraryPaths bool true Permitir que o conteúdo externo da biblioteca use caminhos de ficheiros.

Formatting

Configuração Tipo Predefinição Description
mssql.format.options.asKeywordOnOwnLine bool true Coloque AS numa linha própria.
mssql.format.options.columnAliasStyle enumeração asKeyword Formate os aliases de colunas usando AS, um sinal de igual ou a sintaxe original. Os valores válidos são asKeyword, equalsSigne preserve.
mssql.format.options.commaPlacement enumeração trailing Coloque vírgulas no final dos itens da lista (trailing) ou no início do item seguinte (leading).
mssql.format.options.leadingCommaSpaceCount número inteiro 1 Número de espaços após uma vírgula inicial. Os valores válidos são 0 e 1.
mssql.format.options.persistTrailingGo bool false Mantenha os separadores de lotes GO finais do script original.
mssql.format.options.preserveComments bool true Preserve os comentários durante a formatação.
mssql.format.options.terminateBlockStatements bool false Adicione pontos e vírgulas finais depois dos blocos BEGIN...END e TRY...CATCH.

Recuo

Configuração Tipo Predefinição Description
mssql.format.options.indentSetClause bool false Indente as cláusulas SET nas instruções UPDATE.
mssql.format.options.indentViewBody bool false Corpos afundados VIEW .

Multilinha

Configuração Tipo Predefinição Description
mssql.format.options.multilineGroupByElementsList bool false Formate GROUP BY os elementos como uma lista multilinha.
mssql.format.options.multilineHavingPredicatesList bool true Formate HAVING predicados separados por AND ou OR em múltiplas linhas.
mssql.format.options.multilineInsertSourcesList bool true Formate INSERT as fontes como listas multilinhas.
mssql.format.options.multilineInsertTargetsList bool true Formate as colunas INSERT como listas de várias linhas.
mssql.format.options.multilineInValuesList bool false Formatar valores num predicado IN como uma lista de várias linhas.
mssql.format.options.multilineNestedFunctionCalls bool false Formatar chamadas de função aninhadas em linhas separadas com indentação, mantendo as chamadas de função isoladas numa só linha.
mssql.format.options.multilineOrderByElementsList bool false Formate ORDER BY os elementos como uma lista multilinha.
mssql.format.options.multilinePartitionByElementsList bool false Formatar os elementos PARTITION BY nas especificações da janela numa lista multilinha.
mssql.format.options.multilineProcedureParametersList bool false Formatar parâmetros de procedimento e função em linhas separadas.
mssql.format.options.multilineSelectElementsList bool true Formate as colunas SELECT como listas de várias linhas.
mssql.format.options.multilineSetClauseItems bool true Formate SET os itens da cláusula como listas multilinhas.
mssql.format.options.multilineViewColumnsList bool true Formate as colunas VIEW como listas de várias linhas.
mssql.format.options.multilineWherePredicatesList bool true Formatar WHERE os predicados como listas multilinhas.
mssql.format.options.multilineWithOptionsList bool false Formate os valores da cláusula suportados WITH e OPTION em linhas separadas.

Nova linha

Configuração Tipo Predefinição Description
mssql.format.options.newLineAfterJoinKeyword bool true Coloque a fonte da tabela unida numa nova linha após a JOIN palavra-chave.
mssql.format.options.newLineBeforeCloseParenthesisInMultilineList bool true Coloque uma nova linha antes do parêntese final de uma lista multilinha.
mssql.format.options.newLineBeforeFromClause bool true Coloque uma nova linha antes da FROM cláusula.
mssql.format.options.newLineBeforeGroupByClause bool true Coloque uma nova linha antes da GROUP BY cláusula.
mssql.format.options.newLineBeforeHavingClause bool true Coloque uma nova linha antes da HAVING cláusula.
mssql.format.options.newLineBeforeJoinClause bool true Coloque uma linha nova antes das cláusulas JOIN.
mssql.format.options.newLineBeforeOffsetClause bool true Coloque uma nova linha antes da OFFSET cláusula.
mssql.format.options.newLineBeforeOnClause bool true Coloque a cláusula ON de uma junção numa nova linha.
mssql.format.options.newLineBeforeOpenParenthesisInMultilineList bool false Coloque uma nova linha antes da abertura entre parênteses de uma lista multilinha.
mssql.format.options.newLineBeforeOrderByClause bool true Coloque uma nova linha antes da ORDER BY cláusula.
mssql.format.options.newLineBeforeOutputClause bool true Coloque uma nova linha antes da OUTPUT cláusula.
mssql.format.options.newLineBeforeWhereClause bool true Coloque uma nova linha antes da WHERE cláusula.
mssql.format.options.newLineBeforeWindowClause bool true Coloque uma nova linha antes da WINDOW cláusula.
mssql.format.options.newlineFormattedCheckConstraint bool false Coloque a cláusula CHECK de uma restrição na sua própria linha.
mssql.format.options.newLineFormattedIndexDefinition bool false Coloque UNIQUE, INCLUDE, e WHERE partes das definições de índices em linha em linhas separadas.

Espaciamento entre instruções e lotes

Configuração Tipo Predefinição Description
mssql.format.options.numNewlinesAfterBatches número inteiro 1 Número de quebras de linha após cada GO separador de lote, de 0 até 5.
mssql.format.options.numNewlinesAfterBatchStatement número inteiro 2 Número de quebras de linha após cada instrução de topo num lote, de 0 até 5.
mssql.format.options.numNewlinesAfterStatement número inteiro 1 Número de quebras de linha após cada afirmação, de 0 até 5.

Spacing

Configuração Tipo Predefinição Description
mssql.format.options.spaceBetweenDataTypeAndParameters bool true Insira um espaço entre um tipo de dados e os respetivos parênteses, por exemplo: VARCHAR (255).
mssql.format.options.spaceBetweenParametersInDataType bool true Insira espaços entre parâmetros num tipo de dado, por exemplo DECIMAL (10, 2).

Ficheiro de definições de exemplo

{
  "mssql.format.options.keywordCasing": "lowercase",
  "mssql.format.options.alignClauseBodies": false,
  "mssql.format.options.numNewlinesAfterStatement": 2,
  "[sql]": {
    "editor.formatOnSave": true
  }
}

Definir o formador padrão

Para definir a extensão MSSQL como padrão, selecione Configurar Formatador Padrão...>SQL Server (mssql), ou adicionar a seguinte configuração asettings.json:

{
  "[sql]": {
    "editor.defaultFormatter": "ms-mssql.mssql"
  }
}