Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server
Azure SQL Database
Instancia Gestionada de Azure SQL
Azure Synapse Analytics
Sistema de Plataforma Analítica (PDW)
Punto de análisis SQL en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
El formato coherente facilita la lectura, revisión y mantenimiento de Transact-SQL (T-SQL), especialmente cuando varias personas contribuyen al mismo código base. SQL Server Management Studio (SSMS) incluye un formateador SQL integrado que se puede ejecutar a petición, configurar para el formato automático al guardar y personalizar a través de la configuración de SSMS o de archivos .editorconfig.
La funcionalidad de formato de SQL en SSMS se basa en ScriptDOM, una biblioteca de código abierto .NET que analiza T-SQL y genera scripts basados en árboles de sintaxis abstractos.
Prerequisites
- SQL Server Management Studio 22.7 o una versión posterior
Formato a petición
Puede dar formato A T-SQL en cualquier ventana del editor de consultas en cualquier momento. El formateador puede aplicarse a todo el documento o solo a una sección seleccionada de texto.
Para dar formato a SQL a petición, use uno de los métodos siguientes:
- Menú contextual: haz clic con el botón derecho en una ventana del editor de T-SQL y selecciona Formatear SQL.
- menú Editar: seleccione Editar>Avanzado>.
- Método abreviado de teclado: presione Ctrl+K, Ctrl+Q.
Al seleccionar texto, el formateador solo se aplica a la selección. Cuando no selecciona texto, el formateador se aplica a todo el documento.
Formatear al guardar
Al activar la opción Formato en Guardar , el formateador aplica automáticamente las opciones de formato configuradas cada vez que guarde un .sql archivo. Dar formato al guardar funciona en ventanas del editor de consultas con nombre o guardadas y en archivos de proyectos de base de datos SQL. El formateo al guardar mantiene tus archivos SQL uniformes en todas las pull requests y revisiones de código.
Para activar el formateo al guardar para todos los archivos:
- Seleccione Herramientas>Opciones.
- Vaya a Formateador SQL>Formato.
- Establezca Formatear al guardar en True.
- Selecciona Aceptar.
También puede configurar format_on_save = true en un archivo .editorconfig para habilitar el formateo al guardar para todos los archivos .sql de su proyecto o carpeta. Para obtener más información, vea archivo .editorconfig.
Configuración de las opciones de formato
El formateador admite diversas opciones que controlan el formato de SQL, como la capitalización de las palabras clave, el tamaño de la sangría, los puntos y coma después de las sentencias y los saltos de línea en cláusulas como FROM, WHERE y JOIN. Puede configurar estas opciones de dos maneras: a través de la configuración de SSMS o a través de un .editorconfig archivo.
Cuando existe una configuración de SSMS y un .editorconfig valor para la misma opción, el .editorconfig valor tiene prioridad. Esta precedencia le permite establecer los valores predeterminados preferidos en SSMS e invalidarlos por proyecto o por carpeta con un .editorconfig archivo.
Configuración de SSMS
Para configurar las opciones de formato en SSMS:
- Seleccione Herramientas>Opciones.
- Vaya a Formateador de SQL.
- Ajuste la configuración de las subcategorías: General, Alignment, Paths, Format, Indentation, Multiline, New Line y Spacing.
- Selecciona Aceptar.
Archivo .editorconfig
Puede definir opciones de formato en un .editorconfig archivo colocado en el proyecto o carpeta. SSMS lee estos valores y los aplica como invalidaciones sobre la configuración de SSMS.
Todas las claves del formateador SQL van bajo [*.sql] en .editorconfig.
General
| Key | Tipo | Values | Predeterminado |
|---|---|---|---|
sql_version |
enum |
Sql80
Sql90
Sql100
Sql110
Sql120
Sql130
Sql140
Sql150
Sql160
Sql170
|
Sql170 |
sql_engine_type |
enum |
All
Standalone
SqlAzure
|
All |
Alineación
| Key | Tipo | Values | Predeterminado | Descripción |
|---|---|---|---|---|
align_clause_bodies |
bool | true |
Alinee los cuerpos de FROM, WHERE, GROUP BY y cláusulas similares. |
|
align_column_definition_fields |
bool | true |
Alinee los campos de definición de columna, como el nombre, el tipo y las restricciones. | |
align_set_clause_item |
bool | true |
Alinear SET los elementos de las cláusulas en las UPDATE sentencias. |
|
clause_body_alignment |
enum |
Aligned
Indented
|
Aligned |
Controla si los cuerpos de las cláusulas se alinean con la palabra clave de la cláusula o se colocan en la línea siguiente con sangría. |
Formato
| Key | Tipo | Values | Predeterminado | Descripción |
|---|---|---|---|---|
as_keyword_on_own_line |
bool | true |
Coloque AS en su propia línea. |
|
built_in_function_casing |
enum |
Preserve
Uppercase
Lowercase
PascalCase
|
Preserve |
Controla el uso de mayúsculas y minúsculas de los nombres de las funciones integradas. |
column_alias_style |
enum |
AsKeyword
EqualsSign
Preserve
|
Preserve |
Representar alias de columna mediante la AS palabra clave , un signo igual o conservar el estilo original. |
comma_placement |
enum |
Trailing
Leading
|
Trailing |
Coloque comas al final de la línea (final) o el inicio de la línea siguiente (inicial) en listas de varias líneas. |
format_on_save |
bool | false |
Formato automático al guardar (solo SSMS, no en ScriptDOM). | |
identifier_bracketing |
enum |
Preserve
IncludeBrackets
ExcludeBrackets
|
Preserve |
Controla si los corchetes alrededor de los identificadores se conservan, agregan o quitan. |
identifier_casing |
enum |
Preserve
Uppercase
Lowercase
PascalCase
|
Preserve |
Controla el uso de mayúsculas y minúsculas en los identificadores. |
keyword_casing |
enum |
Uppercase
Lowercase
PascalCase
|
Uppercase |
Estilo de uso de mayúsculas y minúsculas en palabras clave. |
leading_comma_space_count |
int | (0 - 1) | 1 |
Controla el número de espacios insertados después de una coma inicial. |
preserve_comments |
bool | true |
Mantener los comentarios durante el formateo. | |
terminate_block_statements |
bool | false |
Controla si las sentencias de bloque terminan con un punto y coma. |
Sangría
| Key | Tipo | Values | Predeterminado | Descripción |
|---|---|---|---|---|
indent_set_clause |
bool | false |
Cláusula Indent en SET instrucciones UPDATE. |
|
indent_view_body |
bool | false |
Aplicar sangría al cuerpo VIEW. |
|
indentation_mode |
enum |
Spaces
Tabs
|
Spaces |
Sangría con espacios o caracteres de tabulación. |
indentation_size |
int | (1 - 8) | 4 |
Espacios por nivel de sangría. |
Multilínea
| Key | Tipo | Predeterminado | Descripción |
|---|---|---|---|
multiline_group_by_elements_list |
bool | true |
GROUP BY elementos en líneas separadas. |
multiline_having_predicates_list |
bool | true |
HAVING predicados en líneas independientes. |
multiline_in_values_list |
bool | true |
IN valores de expresión en líneas independientes. |
multiline_insert_sources_list |
bool | true |
INSERT orígenes como multilínea. |
multiline_insert_targets_list |
bool | true |
INSERT columnas como multilínea. |
multiline_nested_function_calls |
bool | true |
Parámetros en llamadas de función anidadas en líneas independientes. |
multiline_order_by_elements_list |
bool | true |
ORDER BY elementos en líneas separadas. |
multiline_partition_by_elements_list |
bool | true |
PARTITION BY elementos en líneas separadas. |
multiline_procedure_parameters_list |
bool | true |
Parámetros de un procedimiento almacenado en líneas separadas. |
multiline_select_elements_list |
bool | true |
SELECT columnas como multilínea. |
multiline_set_clause_items |
bool | true |
SET elementos en varias líneas. |
multiline_view_columns_list |
bool | true |
VIEW columnas como multilínea. |
multiline_where_predicates_list |
bool | true |
WHERE predicados como multilínea. |
multiline_with_options_list |
bool | true |
Opciones en las cláusulas WITH y OPTION en líneas separadas. |
Nueva línea
| Key | Tipo | Predeterminado |
|---|---|---|
new_line_after_join_keyword |
bool | true |
new_line_before_close_parenthesis_in_multiline_list |
bool | true |
new_line_before_from_clause |
bool | true |
new_line_before_group_by_clause |
bool | true |
new_line_before_having_clause |
bool | true |
new_line_before_join_clause |
bool | true |
new_line_before_offset_clause |
bool | true |
new_line_before_on_clause |
bool | true |
new_line_before_open_parenthesis_in_multiline_list |
bool | false |
new_line_before_order_by_clause |
bool | true |
new_line_before_output_clause |
bool | true |
new_line_before_where_clause |
bool | true |
new_line_before_window_clause |
bool | true |
newline_formatted_check_constraint |
bool | false |
newline_formatted_index_definition |
bool | false |
num_newlines_after_batch_statement |
int (0 - 10) | 2 |
num_newlines_after_batches |
int (0 - 10) | 1 |
num_newlines_after_statement |
int (0 - 10) | 1 |
Spacing
| Key | Tipo | Predeterminado | Descripción |
|---|---|---|---|
space_between_data_type_and_parameters |
bool | true |
Espacio entre el tipo de dato y los paréntesis, por ejemplo VARCHAR (255) |
space_between_parameters_in_data_type |
bool | true |
Espacio entre parámetros en tipos de datos |
Ejemplo de .editorconfig
En el ejemplo siguiente se muestra un .editorconfig archivo que establece algunas opciones personalizadas habitualmente. Las propiedades no especificadas en el archivo se revierten a la configuración de SSMS.
[*.sql]
keyword_casing = lowercase
include_semicolons = true
indentation_size = 2
multiline_select_elements_list = true
new_line_before_from_clause = true
Compartir comentarios
La funcionalidad de formato SQL en SSMS se basa en la biblioteca de código abierto .NET para el análisis de T-SQL, ScriptDOM. Use el sistema de problemas de GitHub en el repositorio ScriptDOM para analizar ideas y desafíos. Se aceptan pull requests.
Envíe comentarios de SSMS a través de la Ayuda>para enviar comentarios en SSMS o a través del canal de comentarios de Developer Community.