studio standard sp2 microsoft management instalar descargar cliente sql-server-2008

sql-server-2008 - standard - sql server 2008 r2 download



Exportar el resultado de la consulta al archivo.csv en SQL Server 2008 (12)

  1. Abrir SQL Server Management Studio
  2. Vaya a Herramientas> Opciones> Resultados de la consulta> Servidor SQL> Resultados al texto
  3. En el extremo derecho, hay un cuadro desplegable llamado Formato de salida
  4. Elija Coma Delimited y haga clic en Aceptar

Aquí hay una versión de pantalla completa de esa imagen, a continuación

Esto mostrará los resultados de su consulta como texto delimitado por comas.

Para guardar los resultados de una consulta en un archivo: Ctrl + Shift + F

¿Cómo puedo exportar un resultado de consulta a un archivo .csv en SQL Server 2008?


El uso de la técnica nativa de SQL Server Management Studio para exportar a CSV (como se sugiere @ 8kb) no funciona si sus valores contienen comas, porque SSMS no ajusta los valores entre comillas dobles. Una forma más sólida que funcionó para mí es simplemente copiar los resultados (hacer clic dentro de la grilla y luego CTRL-A, CTRL-C) y pegarlos en Excel. A continuación, guarde como archivo CSV de Excel.


MS Excel -> Datos -> Nueva consulta -> De la base de datos ... siga los pasos


Puede usar QueryToDoc ( http://www.querytodoc.com ). Le permite escribir una consulta en una base de datos SQL y exportar los resultados, después de seleccionar el delimitador, a Excel, Word, HTML o CSV.


Puedes usar PowerShell

$AttachmentPath = "CV File location" $QueryFmt= "Query" Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $QueryFmt | Export-CSV $AttachmentPath


Sé que esto es un poco viejo, pero aquí hay una manera mucho más fácil ...

  1. Ejecute su consulta con la configuración predeterminada (coloca los resultados en formato de cuadrícula, si su no está en formato de cuadrícula, consulte a continuación)

  2. Haga clic derecho en los resultados de la grilla y haga clic en "Guardar resultados como" y guárdelo.

Si los resultados no están en formato de cuadrícula, haga clic con el botón derecho donde escribe la consulta, desplace el cursor sobre "Resultados a" y haga clic en "Resultados en cuadrícula".

¡Buena suerte!


Sí, todo esto es posible cuando tienes acceso directo a los servidores. Pero, ¿qué sucede si solo tiene acceso al servidor desde un servidor web / de aplicaciones? Bueno, la situación era esta con nosotros hace mucho tiempo y la solución era SQL Server Exportar a CSV .


Si la base de datos en cuestión es local, la siguiente es probablemente la forma más robusta de exportar un resultado de consulta a un archivo CSV (es decir, darle el mayor control).

  1. Copia la consulta
  2. En el Explorador de objetos, haga clic derecho en la base de datos en cuestión.
  3. Seleccione "Tareas" >> "Exportar datos ..."
  4. Configure su fuente de datos y haga clic en "Siguiente".
  5. Elija "Archivo plano" o "Microsoft Excel" como destino.
  6. Especifique una ruta de archivo.
  7. Si trabaja con un archivo plano, configúrelo como desee. Si trabaja con Microsoft Excel, seleccione "Excel 2007" (las versiones anteriores tienen un límite de fila de 64k)
  8. Seleccione "Escribir una consulta para especificar los datos a transferir"
  9. Pegar la consulta del Paso 1.
  10. Haga clic en siguiente >> revisión de mapeos >> haga clic en siguiente >> seleccione "ejecutar inmediatamente" >> haga clic en "finalizar" dos veces.

Después de pasar por este proceso exhaustivamente, encontré que la siguiente es la mejor opción

Script de PowerShell

$dbname = "**YOUR_DB_NAME_WITHOUT_STARS**" $AttachmentPath = "c://export.csv" $QueryFmt= @" **YOUR_QUERY_WITHOUT_STARS** "@ Invoke-Sqlcmd -ServerInstance **SERVER_NAME_WITHOUT_STARS** -Database $dbname -Query $QueryFmt | Export-CSV $AttachmentPath -NoTypeInformation

Ejecute PowerShell como administrador

& "c:/path_to_your_ps1_file.ps1"


Si no quiere usar Powershell, esta respuesta es una variación de la gran respuesta de 8kb. La única diferencia es que en lugar de seleccionar CSV como formato de salida, seleccione Tab Delimited. De esta forma, si hay comas en sus datos, no saltará las celdas en Excel. Además, si tiene el delimitador predeterminado de Excel establecido en pestañas, puede simplemente hacer una copia de todos los resultados de la consulta SSMS (CTRL-A, CTRL-C) y pegarlo en Excel (no es necesario guardarlo como un archivo e importarlo a Excel )

  • En SSMS, vaya a Herramientas> Opciones> Resultados de la consulta> Servidor SQL> Resultados al texto
  • Cambiar el formato de salida en el extremo derecho a Tab Delimited
  • Haga clic en Aceptar

Ahora puede ejecutar su consulta, luego hacer una CTRL-A para seleccionar todos los resultados, luego CTRL-C para copiar al portapapeles, luego cambiar a Excel 2013 (puede funcionar también en 2007, no estoy seguro) y pegar, asumiendo el valor predeterminado de Excel delimitador está configurado en tabulación.

Imagen de la pantalla de opciones de consulta SSMS


Sobre la base de la respuesta de NS, tengo un script de PowerShell que exporta a un archivo CSV con las comillas alrededor del campo y se separa por comas y omite la información del encabezado en el archivo.

add-pssnapin sqlserverprovidersnapin100 add-pssnapin sqlservercmdletsnapin100 $qry = @" Select * From tablename "@ Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $qry | convertto-CSV -notype | select -skip 1 > "full path and filename.csv"

Las dos primeras líneas permiten la capacidad de usar el comando-let Invoke-SqlCmd .


Use T-SQL :

INSERT INTO OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Text;Database=D:/;HDR=YES;FMT=Delimited'',''SELECT * FROM [FileName.csv]'') SELECT Field1, Field2, Field3 FROM DatabaseName

Pero, hay un par de advertencias:

  1. Debe tener el proveedor Microsoft.ACE.OLEDB.12.0 disponible. El proveedor de Jet 4.0 también funcionará, pero es antiguo, así que usé este en su lugar.

  2. El archivo .CSV deberá existir ya. Si está utilizando encabezados ( HDR=YES ), asegúrese de que la primera línea del archivo .CSV sea una lista delimitada de todos los campos.


INSERT INTO OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Text;Database=D:/;HDR=YES;FMT=Delimited'',''SELECT * FROM [FileName.csv]'') SELECT Field1, Field2, Field3 FROM DatabaseName

como @Slogmeister Extraordinaire Quoted es correcto.

Uno necesita tener 1> Archivo ya presente con columnas 2> Uno necesita tener Office instalado

Errores enfrentados

1

Msg 7303, nivel 16, estado 1, línea 1 No se puede inicializar el objeto de origen de datos del proveedor OLE DB "Microsoft.ACE.OLEDB.12.0" para el servidor vinculado "(nulo)". "

64 bit http://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_x64.exe

32 bit http://download.microsoft.com/download/f/d/8/fd8c20d8-e38a-48b6-8691-542403b91da1/AccessDatabaseEngine.exe

2

Msj 15281, nivel 16, estado 1, línea 1 Servidor SQL bloqueó el acceso a la DECLARACIÓN ''OpenRowset / OpenDatasource'' del componente ''Consultas distribuidas ad hoc'' porque este componente está desactivado como parte de la configuración de seguridad para este servidor. Un administrador del sistema puede habilitar el uso de ''Consultas distribuidas ad hoc'' utilizando sp_configure. Para obtener más información sobre cómo habilitar ''Consultas distribuidas ad hoc'', busque ''Consultas distribuidas ad hoc'' en los Libros en pantalla de SQL Server.

EXEC sp_configure ''show advanced options'', 1 RECONFIGURE GO EXEC sp_configure ''ad hoc distributed queries'', 0 RECONFIGURE GO