2017-08-31 153 views
0

我想創建一個windows批處理文件,以便將數據從SQL文件導出爲CSV文件。使用Windows批處理腳本將SQL表導出爲CSV文件

我有一個SQL文件%MYHOME%\數據庫\ NET-DB.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 

因爲對我來說是不行的,應該是什麼這個實施正確的做法?任何幫助都感激不盡。

+0

什麼大小的NET-DB.sql?我認爲比蝙蝠更簡單。 – matrix

+0

sql文件具有要插入到net_network表中的值。在運行「COPY」之前完成了嗎?你遇到什麼問題btw? –

+0

你試圖將net_network(這是SQL內部的一個表)複製到一個文件中,這將不起作用,因爲batch永遠不會知道net_network是什麼。 –

回答

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列的寬度隔開,這必須與您最大的列字符一樣大。