sql server - txt - Esporta la tabella dal database al file csv




sqlcmd extract data to csv (4)

Ecco un'opzione che ho trovato per esportare in Excel (può essere modificato per CSV credo)

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;', 
'SELECT * FROM [SheetName$]') select * from SQLServerTable

https://code.i-harness.com

Desidero: Esportare la tabella dal database del server sql in un file csv delimitato da virgole senza utilizzare la procedura guidata per l'importazione importata da SQL Server

Voglio farlo utilizzando una query perché voglio utilizzare la query in automazione

È possibile? L'ho cercato e non ho trovato una buona risposta


Ho scritto un piccolo strumento che fa proprio questo. Il codice è disponibile su github .

Per scaricare i risultati di una (o più) query SQL su uno (o più) file CSV:

java -jar sql_dumper.jar /path/sql/files/ /path/out/ user pass jdbcString

Saluti.


Qualche idea:

Da SQL Server Management Studio

 1. Run a SELECT statement to filter your data
 2. Click on the top-left corner to select all rows
 3. Right-click to copy all the selected
 4. Paste the copied content on Microsoft Excel
 5. Save as CSV

Utilizzo di SQLCMD (prompt dei comandi)

Esempio:

Dal prompt dei comandi, è possibile eseguire la query ed esportarla in un file:

sqlcmd -S . -d DatabaseName -E -s',' -W -Q "SELECT * FROM TableName" > C:\Test.csv

Ulteriori informazioni qui: ExcelSQLServer

Gli appunti:

  • Questo approccio avrà le informazioni "Righe interessate" nella parte inferiore del file, ma è possibile eliminarle utilizzando "SET NOCOUNT ON" nella query stessa.

  • È possibile eseguire una stored procedure anziché la query effettiva (ad esempio "EXEC Database.dbo.StoredProcedure")

  • È possibile utilizzare qualsiasi linguaggio di programmazione o persino un file batch per automatizzarlo

Utilizzo di BCP (prompt dei comandi)

Esempio:

bcp "SELECT * FROM Database.dbo.Table" queryout C:\Test.csv -c -t',' -T -S .\SQLEXPRESS

È importante citare il separatore di virgola come -t ',' vs just -t,

Maggiori informazioni qui: bcp Utility

Gli appunti:

  • Come per quando si utilizza SQLCMD, è possibile eseguire stored procedure anziché le query effettive
  • È possibile utilizzare qualsiasi linguaggio di programmazione o un file batch per automatizzarlo

Spero che questo ti aiuti.


Da SQL Server Management Studio

Fai clic con il pulsante destro del mouse sulla tabella che desideri esportare e seleziona "Seleziona tutte le righe"

Fai clic destro sulla finestra dei risultati e seleziona "Salva risultati come ..."





csv