2009-04-28 26 views
62

Quiero exportar algunos datos de SQL Server 2005 al formato CSV (separados por comas con comillas). Puedo pensar en muchas formas complicadas de hacerlo, pero quiero hacerlo a la manera derecha. Miré bcp, pero no puedo imaginar cómo poner las comillas en los campos (excepto concatenarlas a los valores de campo, lo cual es feo). Supongo que podría hacerlo con sqlcmd y -o, pero eso parece feo por la misma razón.Cómo exportar la consulta de SQL Server 2005 a CSV

¿Hay alguna manera de hacerlo?

¿Existe una forma razonable de sqlcmd para hacerlo?

¿Hay alguna utilidad genial y sencilla incorporada en Management Studio que acabo de pasar por alto?

+0

ver también: http://stackoverflow.com/questions/425379/how-to-export-data-as-csv-format-from-sql-server-using-sqlcmd –

Respuesta

62

En Management Studio, seleccione la base de datos, haga clic con el botón derecho y seleccione Tasks->Export Data. Allí verá opciones para exportar a diferentes tipos de formatos, incluidos CSV, Excel, etc.

También puede ejecutar su consulta desde la ventana de Consulta y guardar los resultados en CSV.

+0

Sabía que era algo así de simple . Gracias. –

+25

Cuando guarda los resultados en CSV, parece que no escapan las comas en los campos varchar correctamente –

+2

¿Esto funciona en 2005? No obtengo opciones para los tipos de archivos –

5

Para consultas ad hoc:

Mostrar resultados en el modo de rejilla (CTRL + D), consulta de gestión, haga clic en la caja superior izquierda en la cuadrícula de resultados, pegue a Excel, Guardar como CSV. Usted puede ser capaz de pegar directamente en un archivo de texto (no puede probarlo ahora)

o "Resultados para presentar" tiene opciones también para CSV

O "Resultados de texto" con separadores de coma

Todas las configuraciones en Opciones de herramientas..Opciones y Consulta ... (creo que no puedo verificar) también

+0

Esto es lo que habría publicado – DForck42

+3

Esto no funciona bien para grandes conjuntos de resultados ... excepciones de memoria. :( – CodeRedick

44

En el estudio de gestión, establezca las opciones de consulta para enviar al archivo, y en opciones-> resultados de consulta establecer salida en archivo para salir utilizando coma como delimitador.

+0

No sabía que podía hacer eso. Gracias. –

9

Sí, hay una utilidad muy simple en Management Studio, si solo desea guardar los resultados de la consulta en un archivo CSV.

Haga clic con el botón derecho en el conjunto de resultados, seleccione "Guardar resultados como". El tipo de archivo predeterminado es CSV.

6

Si se ajusta a sus requisitos, puede usar bcp en la línea de comandos si lo hace con frecuencia o si desea compilarlo en un proceso de producción.

Here's a link describiendo la configuración.

+0

Esto responde mi pregunta sobre el bcp (es tan feo como pensé, nadie dijo que el bcp no era feo). Gracias. –

31

Si no puede usar Management Studio, uso sqlcmd.

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s"," 

Esa es la forma más rápida de hacerlo desde la línea de comandos.

+0

Hay un par de problemas con este enfoque. No incluye las comillas, e imprime un mensaje de "número de filas afectadas" en la parte inferior del archivo. ¿Conoces una forma de evitar cualquiera de esas? –

+0

Otra nota: -q deja el sqlcmd editor abierto. -Q lo cierra. –

+9

anteponga "SET NOCOUNT ON;" a la consulta para evitar que se muestre el número de filas. – JohnW

2

conjunto NOCOUNT en

las cotizaciones están ahí, usar -w2000 para mantener cada fila en una línea.

+0

Supongo que esto es en combinación con la sugerencia de curtisboy, ¿verdad? Buena idea. –

2

En SQL 2005, esto es simple: 1. Server Management Studio Abra SQL y copie la instrucción SQL que necesita en el TSQL, tales como sp_whatever ejecutivo 2. query-> Resultados a cuadrícula 3.Resalte la instrucción sql y ejecútela 4. Resalte los resultados de los datos (haga clic con el botón izquierdo en la cuadrícula superior izquierda de los resultados) 5. Ahora haga clic con el botón derecho y seleccione Guardar resultados como 6. Seleccione CSV en Guardar como tipo, ingrese un nombre de archivo, seleccione una ubicación y haga clic en Guardar.

¡Fácil!

25

que tenía que hacer una cosa más de lo que dijo Sijín para conseguir que se añaden las citas correctamente en SQL Server Management Studio 2005. Ir a

Tools->Options->Query Results->Sql Server->Results To Grid

Pon una marca junto a esta opción:

Quote strings containing list separators when saving .csv results

Nota: el método anterior no funcionará para SSMS 2005 Express! Hasta donde sé, no hay forma de citar los campos al exportar resultados a .csv usando SSMS 2005 Express.

+7

¿Por qué oh, ¿por qué no sería el comportamiento predeterminado? Eso es bey y tonto que tienes que establecer eso. Gracias por el consejo. Muy útil. –

+5

Por lo que vale, la opción "quote curings" no funcionó para mí (las cadenas emitidas no fueron citadas). Terminé teniendo que incluir las comillas en mi declaración SELECCIONAR. Deja que Microsoft cree una herramienta de exportación de datos que sea completamente inútil. –

+2

Sé que esto fue hace mucho tiempo, y estoy en SQL Server 2008, pero una cosa que quería agregar es esta: asegúrese de que después de cambiar la configuración de cotización, abra una nueva ventana de consulta para ejecutar la consulta y exportar los resultados de. No funciona a menos que hagas eso. Solo agregue esto para el beneficio de cualquier otra persona que lea esta respuesta. –

1

en SQL Server 2012 - Gestión del Estudio:

Solución 1:

Ejecutar la consulta

Haga clic derecho en la ventana de resultados

Seleccione Guardar los resultados como en el menú

Seleccionar CSV

Solución 2:

haga clic en el botón derecho en la base de datos

Seleccione Tareas, exportar datos

Seleccionar origen DB

Seleccionar Destino: archivo plano Destino

Escoge un nombre de archivo

Seleccionar formato - Delimitados

elegir una tabla o escribir una consulta

Escoja un delimitador de columna

Nota: Usted puede escoger un calificador de texto que delimitan los campos de texto, tales como cotizaciones.

Si tiene un campo con comas, no lo use, utilice la coma como delimitador, ya que no escapa a las comas. Puede elegir un delimitador de columna como Vertical Bar: | en lugar de coma, o un carácter de tabulación. De lo contrario, escriba una consulta que escapa de sus comas o delimita su campo varchar.

El carácter de escape o el calificador de texto que necesita utilizar depende de sus requisitos.

0

SSIS es una muy buena forma de hacerlo. Esto se puede programar utilizando trabajos del Agente SQL Server.

+1

SSIS es en realidad una forma pobre de hacer la mayoría de las cosas. Es útil si necesita escribir código pero no conoce SQL u otro lenguaje de programación; de lo contrario, es lento, está saturado, no usa las transacciones de una manera sensata y es difícil de depurar. No tiene sentido un paquete completo de SSIS cuando una simple llamada BCP funcionará. – David

1

Creo que la forma más sencilla de hacerlo es desde Excel.

  1. Abra un nuevo archivo de Excel.
  2. Haga clic en la ficha Datos
  3. seleccione Otras Fuentes de Datos
  4. Select de SQL Server
  5. Introduzca su nombre de servidor, base de datos, nombre de la tabla, etc.

Si usted tiene una versión más reciente de Excel puede traer los datos desde PowerPivot y luego insertar estos datos en una tabla.

+0

Heh. Hay pensamiento fuera de la caja. Estaba trabajando en SQL Server en ese momento, y no pude encontrar una buena manera de hacerlo desde allí. Nunca pensé comenzar desde el otro lado. ¡Buena sugerencia! –

Cuestiones relacionadas