将表从数据库导出到csv文件
我想要:从SQL Server数据库导出表到逗号分隔的csv
文件,而不使用SQL Server导入导出向导
我想用查询来做,因为我想在自动化中使用查询
可能吗? 我search了,没有find一个好的答案
一些想法:
从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
使用SQLCMD(命令提示符)
例:
在命令提示符下,您可以运行查询并将其导出到文件中:
sqlcmd -S . -d DatabaseName -E -s',' -W -Q "SELECT * FROM TableName" > C:\Test.csv
更多信息在这里: ExcelSQLServer
笔记:
-
这种方法将在文件底部有“行受影响”的信息,但是你可以通过在查询本身中使用“SET NOCOUNT ON”来解决这个问题。
-
你可以运行一个存储过程而不是实际的查询(例如“EXEC Database.dbo.StoredProcedure”)
- 您可以使用任何编程语言,甚至batch file来自动执行此操作
使用BCP(命令提示符)
例:
bcp "SELECT * FROM Database.dbo.Table" queryout C:\Test.csv -c -t',' -T -S .\SQLEXPRESS
引用逗号分隔符是很重要的,因为-t','vs只是-t,
更多信息在这里: bcp工具
笔记:
- 按照使用SQLCMD时,您可以运行存储的过程,而不是实际的查询
- 您可以使用任何编程语言或batch file来自动执行此操作
希望这可以帮助。
这里是我发现导出到Excel的选项(可以修改为CSV我相信)
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;', 'SELECT * FROM [SheetName$]') select * from SQLServerTable
您还可以使用以下Node.js模块轻松完成此操作:
https://www.npmjs.com/package/mssql-to-csv
var mssqlExport = require('mssql-to-csv') // All config options supported by https://www.npmjs.com/package/mssql var dbconfig = { user: 'username', password: 'pass', server: 'servername', database: 'dbname', requestTimeout: 320000, pool: { max: 20, min: 12, idleTimeoutMillis: 30000 } }; var options = { ignoreList: ["sysdiagrams"], // tables to ignore tables: [], // empty to export all the tables outputDirectory: 'somedir', log: true }; mssqlExport(dbconfig, options).then(function(){ console.log("All done successfully!"); process.exit(0); }).catch(function(err){ console.log(err.toString()); process.exit(-1); });
从SQL Server Management Studio
右键点击要导出的表格,然后select“Select All Rows”
右键单击结果窗口并select“将结果另存为…”
rsubmit; options missing=0; ods listing close; ods csv file='\\FILE_PATH_and_Name_of_report.csv'; proc sql; SELECT * FROM `YOUR_FINAL_TABLE_NAME'; quit; ods csv close; endrsubmit;
我写了一个小工具来做到这一点。 代码在github上可用。
将一个(或多个)SQL查询的结果转储到一个(或多个)CSV文件:
java -jar sql_dumper.jar /path/sql/files/ /path/out/ user pass jdbcString
干杯。