我正在尝试创建一个 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
既然这对我不起作用,那么这个实现的正确方法应该是什么?任何帮助将不胜感激。
使用
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
列宽,这必须与最大的列字符一样大。