使用Windows批处理脚本将SQL表导出为CSV文件

时间:2017-08-31 08:08:12

标签: sql csv batch-file

我正在尝试创建一个Windows批处理文件,以将数据从SQL文件导出到CSV文件。

我在%MYHOME%\ database \ NET-DB.sql 中有一个SQL文件,其中包含以下数据:

NET-DB.sql

insert into net_network (id, a_id, alias, address, domain, mask) values('NET_10.10.1.0_10', 1, 'Local Network', '10.10.1.0', '', '255.255.252.0');

到目前为止,我在将 net_network 表中的数据导出到我的.bat文件中的CSV文件时尝试使用此命令:

export.bat

if not exist "%MYHOME%\net\NUL" mkdir "%MYHOME%\net"
COPY net_network TO '%MYHOME%\net\CSV-EXPORT_FILE.csv' DELIMITER ',' CSV HEADER;
pause

由于这对我不起作用,这个实现的正确方法应该是什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用SQLCMD

您需要修改代码以使其在您的环境中正常运行,但现在就去了。

if not exist "%MYHOME%\net\NUL" mkdir "%MYHOME%\net"
cd "C:\your path\to\sqlcmd"
sqlcmd -S YourDBServer -d DB_NAME -E -Q "select id, a_id, alias, address, domain, mask from net_network" 
       -o "CSV-EXPORT-FILE.csv" -s"," -w 255

一些解释:

-S要连接的数据库服务器。

-d要连接的数据库的名称。

-Q查询运行,也可以插入,删除,更新等。

-o选择输出文件

-s""用逗号分隔

-w列宽,这必须与最大列字符一样大。