Guardar resultados con encabezados en Sql Server Management Studio

183

Estoy usando SQL Server Management Studio.

Deseo guardar los resultados de una consulta en un archivo de Excel.

Elijo "guardar como" y luego guardar en un archivo CSV que puedo abrir en Excel. Todo bien, excepto que me faltan encabezados de columna, ¿alguna idea de cómo puedo exportarlos?

dublintech
fuente

Respuestas:

274

Tools> Options> Query Results> SQL Server> Results to Text (or Grid if you want)>Include columns headers in the result set

Es posible que deba cerrar y volver a abrir SSMS después de cambiar esta opción.

En la barra de herramientas del Editor SQL, puede seleccionar guardar en archivo sin tener que reiniciar SSMS

Diego
fuente
35
+1, probó esto y funciona: Herramientas -> Opciones -> Resultados de la consulta -> Servidor SQL -> Resultados a la cuadrícula, luego marque 'Incluir encabezados de columna al copiar o guardar los resultados'.
Jeff Ogata
46
Esto funciona para SSMS 2012: debe reiniciar SSMS para que la configuración surta efecto.
SliverNinja - MSFT
17
Para confirmar, definitivamente debe cerrar y volver a abrir SSMS para que se aplique esta opción.
Christopher King el
8
Como dijo Christopher, usted necesita reiniciar SSMS para que los cambios funcionen.
Rob
8
Para SSMS 2016, también debe reiniciarlo para que estos cambios surtan efecto.
Chris Haas
36

Prueba el Asistente de exportación. En este ejemplo, selecciono una tabla completa, pero puede especificar fácilmente una consulta:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

(también puede especificar una consulta aquí)

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

John Dewey
fuente
44
Gracias por eso. Pero esto es para las mesas. Mi pregunta era para una consulta.
dublintech
1
También puede especificar una consulta en el cuarto paso: "Especificar copia de tabla o consulta".
John Dewey
Intenté todos los otros enfoques, y este es el único que funcionó para mis tipos de datos mixtos.
DOK
3
Si bien esto funciona, es muy doloroso y requiere mucho tiempo. SQL Server y Excel son productos de MS, ¡es sorprendente que no haya un simple botón de exportación en el año 2013!
Andre
34

Otra posibilidad es usar el portapapeles para copiar y pegar los resultados directamente en Excel. Solo tenga cuidado con las columnas de Excel de tipo General, ya que a veces pueden tener resultados impredecibles, dependiendo de sus datos. CTL-Aen cualquier lugar de la cuadrícula de resultados y luego haga clic derecho:

ingrese la descripción de la imagen aquí

Si tiene problemas con el formato general de Excel para realizar conversiones no deseadas, seleccione las columnas en blanco en Excel antes de pegar y cambie el formato a "texto".

John Dewey
fuente
Esto es genial, excepto para el formato Excel. Los números con ceros a la izquierda (por ejemplo, números móviles) eliminan los ceros en Excel. También hay otros problemas de formato al acecho, úselos bajo su propio riesgo. Gracias Microsoft!
e_i_pi
12

Al menos en SQL Server 2012, puede hacer clic derecho en la ventana de consulta y seleccionar Opciones de consulta. Desde allí, puede seleccionar Incluir encabezados para la cuadrícula y / o texto y hacer que Guardar como funcione de la manera deseada sin reiniciar SSMS.

Aún tendrá que cambiarlo en Herramientas-> Opciones en la barra de menú para que las nuevas ventanas de consulta usen esa configuración de manera predeterminada.

Michael McCormick
fuente
7

El mismo problema existe en Visual Studio, aquí se explica cómo solucionarlo allí:

Ir:

Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid

Ahora haga clic en la casilla de verificación verdadero: "Incluir encabezados de columna al copiar o guardar los resultados"

Nicholas Petersen
fuente
6

Seleccione sus resultados haciendo clic en la esquina superior izquierda, haga clic derecho y seleccione "Copiar con encabezados". Pegar en excel. ¡Hecho!

Chris Dimitriu
fuente
4

La configuración que se ha recomendado cambiar en la respuesta aceptada de @ Diego podría ser buena si desea establecer esta opción de forma permanente para todas las futuras sesiones de consulta que abra en SQL Server Management Studio (SSMS). Este no suele ser el caso. Además, cambiar esta configuración requiere reiniciar la aplicación SQL Server Management Studio (SSMS). Nuevamente, esta es una experiencia 'no tan agradable' si tiene muchas ventanas de sesión de consulta abierta sin guardar y está en medio de alguna depuración.

SQL Server ofrece una opción muy ingeniosa de cambiarlo por sesión, lo cual es muy rápido, práctico y conveniente . Detallo los pasos a continuación utilizando la ventana de opciones de consulta:

  1. Haga clic derecho en la ventana del editor de consultas> Haga clic Query Options...en la parte inferior del menú contextual como se muestra a continuación:

ingrese la descripción de la imagen aquí

  1. Seleccione Results> Griden el panel de navegación izquierdo. Marque la Include column headers when copying or saving the resultscasilla de verificación en el panel derecho como se muestra a continuación:

ingrese la descripción de la imagen aquí

Eso es. Su sesión actual respetará su configuración con efecto inmediato sin reiniciar SSMS. Además, esta configuración no se propagará a ninguna sesión futura. Cambiar esta configuración de manera efectiva por sesión es mucho menos ruidoso.

RBT
fuente
2

Llegué aquí cuando buscaba una forma de hacer que SSMS escapara correctamente los separadores CSV al exportar resultados.

¿Adivina qué? - esta es en realidad una opción, y está desmarcada por defecto . Entonces, de manera predeterminada, obtiene archivos CSV rotos (y es posible que ni siquiera se dé cuenta, especialmente si su exportación es grande y sus datos no tienen comas normalmente), y debe ingresar y hacer clic en una casilla de verificación para que sus CSV exporten ¡correctamente!

Para mí, esto parece una elección de diseño monumentalmente estúpida y una metáfora adecuada para el enfoque de Microsoft al software en general ("roto por defecto, requiere acciones rituales sin sentido para que la funcionalidad trivial funcione").

Pero con mucho gusto donaré $ 100 a una organización benéfica elegida por el encuestado si alguien me puede dar una razón válida de la vida real para que esta opción exista (es decir, un escenario real en el que fue útil).

Daibhi O Domhnaill
fuente
2

En SQL Server 2014 Management Studio, la configuración es:

Herramientas> Opciones> Resultados de consulta> SQL Server> Resultados a texto> Incluir encabezados de columna en el conjunto de resultados.

Jason Lewis
fuente
0

También me enfrento al mismo problema. Cuando usé el botón derecho en la ventana de consulta y seleccioné Opciones de consulta. Pero las filas de encabezado no se muestran en el archivo CSV de salida.

Luego cierro sesión en el servidor, inicio sesión nuevamente y ejecuto el script. Entonces funcionó.

hardik rawal
fuente
¿Intentaste cambiar la Include column headers when copying or saving the resultsopción? Esta opción es visible cuando selecciona Results> Griden el panel de navegación izquierdo en la Query Optionsventana.
RBT