Formatear SQL en SQL Server Management Studio

250

En Visual Studio y otros IDEs, puede formatear automáticamente su código con un atajo de teclado, a través del menú o automáticamente mientras escribe.

Me preguntaba si todavía hay una manera de habilitar esta característica estándar en SQL Server Management Studio.

Estoy trabajando con algunos procesos almacenados de gran tamaño que son un desastre desordenado de SQL mal formateado y sería bueno si pudiera ir a "Seleccionar todo -> Formatear SQL"

lomaxx
fuente
1
SQLinForm proporciona una función de teclas de acceso rápido
Guido
1
ahora tiene un formateador en línea gratuito: sqlinform.com/sql_formatter_online.html
Guido
En línea puede usar devtoolsonline20190908040816.azurewebsites.net/DevTools/…
GomuGomuNoRocket
Q actualizado para estar en el tema
Andrew

Respuestas:

270

Respuesta tardía, pero espero que valga la pena: El formateador T-SQL de The Poor Man es un formateador T-SQL de código abierto (gratuito) con soporte completo de lote / script T-SQL (cualquier DDL, cualquier DML), complemento SSMS, línea de comandos masiva formateador y otras opciones.

Está disponible para uso inmediato / en línea en http://poorsql.com , y justo hoy se graduó a la "versión 1.0" (estuvo en versión beta durante unos meses), después de haber adquirido soporte para MERGEdeclaraciones, OUTPUTcláusulas y otras cosas delicadas .

El complemento SSMS le permite configurar su propia tecla de acceso rápido (el valor predeterminado es Ctrl- K, Ctrl- F, para que coincida con Visual Studio) y formatea todo el script o solo el código que ha seleccionado / resaltado, si lo hay. El formato de salida es personalizable.

En SSMS 2008, se combina muy bien con el intelli-sense integrado, proporcionando más o menos la misma funcionalidad básica que el SQL Prompt de Red Gate (SQL Prompt, por supuesto, tiene cosas adicionales, como fragmentos, secuencias de comandos rápidas de objetos, etc)

Las solicitudes de comentarios / funciones son más que bienvenidas, ¡dale una vuelta si tienes la oportunidad!

Divulgación: Esto probablemente ya es obvio, pero escribí esta biblioteca / herramienta / sitio, por lo que esta respuesta también es una autopromoción descarada :)

Tao
fuente
2
En SQL Server 2012, el acceso directo predeterminado Ctrl + K, Ctrl + F no funciona, ya que dice que ya está vinculado a la Selección de formato . Funcionó después de cambiarlo de DataWarehouse Designer::Ctrl+k, Ctrl+fa Global::Ctrl+k, Ctrl+j.
Marco Lackovic
55
ver sugerencias para las instalaciones de SSMS 2014 stackoverflow.com/questions/23303026/…
Alexander Sigachov
2
Gran herramienta pero no compatible con 2016 RTM
dmeglio
1
@ dman2306 - ahora disponible el instalador compatible con 2016 (y 17).
Tao
2
@ Jordania: en Windows 10, .Net Framework 3.5 SP1 (incluido .Net 2.0) es una característica opcional de Windows, que se puede habilitar en la pantalla / funcionalidad "Activar o desactivar características de Windows". Se llama ".NET Framework 3.5 (incluye .NET 2.0 y 3.0)", y está justo en la parte superior de la lista de características opcionales. ¿Esto no funciona para usted? (sí, lo siento, requerir .Net 2.0 en este día y edad probablemente no sea razonable ... Creado Issue github.com/TaoK/PoorMansTSqlFormatter/issues/199 para rastrear)
Tao
137

Hay un truco especial que descubrí por accidente.

  1. Seleccione la consulta que desea formatear.
  2. Ctrl+ Shift+ Q(Esto abrirá su consulta en el diseñador de consultas)
  3. Entonces solo ve OK Voila! El diseñador de consultas formateará su consulta por usted. La advertencia es que solo puede hacer esto para declaraciones y no para código de procedimiento, pero es mejor que nada.
Justin
fuente
99
Buen consejo. Lamentablemente, si bien este método funciona, hace un trabajo bastante pobre. Pero al menos hay algo incorporado.
John Homer
formateado pero no de la manera esperada. De todos modos, algo es mejor que nada:) ..... Gracias por el consejo.
Jaini Naveen
2
Bueno, por lo que puedo decir, aunque en realidad no hace el mejor trabajo, hace algo, y está listo para usar, y no tiene que pagar por ello. Pero solo una persona pensó en marcarlo como útil. Estoy realmente sorprendido, pensé que tenía este vinculado ;-)
Justin
1
Descubrí que, de manera similar, las consultas se formatean cuando se pegan en una nueva Vista. Pero, esto es mucho más limpio ... +1.
Feckmore
16
esto solo funcionará si el contenido de la consulta puede representarse gráficamente.
kbvishnu