servidor sql #region

163

¿Puedo crear regiones en el editor del servidor SQL (como #region y #endregionen C #)?

Rauf
fuente

Respuestas:

272

¡En realidad no lo siento! Pero...

Agregando beginy end... con un comentario sobre las beginregiones creadas que se verían así ... ¡un poco de pirateo!

captura de pantalla del código de inicio de la región final

De lo contrario, solo puede expandirse y colapsarse, simplemente no puede dictar qué debe expandirse y colapsarse. No sin una herramienta de terceros como SSMS Tools Pack .

Orejas de perro
fuente
44
Asegúrese de tener la Declaración de esquema habilitada en Editor de texto> Transact-SQL> Intellisense> Habilitar Intellisense
GatesReign
2
technet.microsoft.com/en-us/library/aa225998(v=sql.80).aspx . Aunque todas las instrucciones de Transact-SQL son válidas dentro de un bloque BEGIN ... END, ciertas instrucciones de Transact-SQL no deben agruparse en el mismo lote (bloque de instrucciones). ¿Alguien podría decirme por qué no deberían agruparse?
Jacob Phan
1
Hack útil, pero no olvide agregar godespués de la enddeclaración si desea crear múltiples regiones / secciones.
marzoOeste
¡brillante! Gracias
talones
¡Multa! Si solo tiene comentarios, bloquee. Tienes que agregar algo sin comentarios dentro. por ejemplo: imprimir
Inon
12

(Soy desarrollador del complemento SSMSBoost para SSMS)

Recientemente hemos agregado soporte para esta sintaxis en nuestro complemento SSMSBoost.

--#region [Optional Name]
--#endregion

También tiene una opción para "reconocer" automáticamente las regiones al abrir scripts.

Andrei Rantsevich
fuente
2
Está bien pero no funciona sobre la marcha. Tengo que cerrar y volver a abrir el archivo para colapsar las regiones recién creadas.
Martin Capodici 01 de
44
Hay una opción de "volver a analizar regiones", disponible en el menú SSMSBoost en la barra de herramientas. Por lo tanto, no es necesario volver a abrir el archivo.
Andrei Rantsevich
Lamentablemente esto tiene un error. Si se comentan las primeras declaraciones de código dentro de la región, la región terminó en la última línea de código comentada
Jeff
9

BEGIN ... END funciona, solo tienes que agregar una sección comentada. ¡La forma más fácil de hacer esto es agregar un nombre de sección! Otra ruta es agregar un bloque de comentarios. Vea abajo:

BEGIN  -- Section Name
/* 
Comment block some stuff  --end comment should be on next line
*/

 --Very long query
SELECT * FROM FOO
SELECT * FROM BAR
END
BClaydon
fuente
6

No está listo para usar en Sql Server Management Studio, pero es una característica del muy buen paquete de herramientas SSMS

Pero P.
fuente
77
Advertencia: cuesta 30 € con una demo de 60 días.
Martin Capodici 01 de
2
Cuando esto se publicó originalmente, la extensión era gratuita
Pero P.
4

Es solo una cuestión de usar sangría de texto en el editor de consultas.

Vista ampliada:

Expandido

Vista contraída:

Colapsado

Bharath theorare
fuente
3

No, #region no existe en el lenguaje T-SQL.

Puede obtener el plegado de código utilizando bloques de inicio y fin:

-- Mi región
empezar
    - el código va aquí
final

¡No estoy seguro de que recomendaría usarlos para esto a menos que el código no pueda ser refactorizado aceptablemente por otros medios!

Mate
fuente
2

He usado una técnica similar a la de McVitie, y solo en procedimientos almacenados o scripts que son bastante largos. Desglosaré ciertas porciones funcionales como esta:

BEGIN /** delete queries **/

DELETE FROM blah_blah

END /** delete queries **/

BEGIN /** update queries **/

UPDATE sometable SET something = 1

END /** update queries **/

Este método se muestra bastante bien en el estudio de administración y es realmente útil para revisar el código. La pieza colapsada se parece a:

BEGIN /** delete queries **/ ... /** delete queries **/

De hecho, lo prefiero de esta manera porque sé que mis BEGINcoincidencias con el de ENDesta manera.

andylize
fuente
1

Otra opción es

si su propósito es analizar su consulta, Notepad + tiene un contenedor automático útil para SQL.

Tekin Güllü
fuente
Esto realmente me ayuda. Gracias
Theotonio