2014-03-05 49 views
1

我有一個正常的SQL查詢:計劃出口到文本文件

SELECT * FROM fmain 

,我想這個查詢的結果定期保存到一個文本文件中。

也就是說,我希望查詢自己運行,然後每天早晨在上午8點(左右)填充文本文件。

我正在運行SQL Server Management Studio 2012,並且是一位新手SQL用戶,因此請儘量以儘可能多的解釋方式回答問題。

請幫我解決這個問題。

乾杯, 尼爾斯

+0

通過SSIS工作:右鍵單擊DB,任務 - >導出數據,然後按照下列步驟操作: [SQL Server Management Studio 2008計劃導出到MS Access](http://stackoverflow.com/questions/10861955/sql-server-management-studio-2008-scheduled-export-to-ms-access) –

回答

1

你可以做到這一點與SQL腳本,批處理和計劃任務。

首先,在你的首選目錄下創建Sql腳本,例如C:\ TEMP \ MySelect.sql,用你的sql語句。

EXEC xp_cmdshell 'SQLCMD -S . -d YOUR_DATABASE_NAME -Q "EXEC SELECT * FROM fmain" -s "," -o "C:\TEMP\MY_FILE.txt" -h-1 -W -s"|"'; 

然後創建批處理文件,就像C:\ TEMP \ call_sql.bat

@ECHO OFF 
echo "Start" 
sqlcmd -i C:\TEMP\MySelect.sql 

然後配置任務計劃每天早上8點運行。 你可以通過程序界面或使用腳本:

schtasks /create /sc DAILY /ST 08:00 /tn "EXPORT fMain every DAY Script" /tr "C:\TEMP\call_sql.bat" 

我希望這可以幫助你

+0

謝謝你的快速回答,但是我在EXEC產品線上收到了很多錯誤。整條線或多或少是紅色的:P。我將數據庫名稱更改爲我的數據庫,還有什麼需要謹慎處理的? – NilsSoderstrom

+0

你可以發佈錯誤嗎? 檢查是否存在C:\ TEMP \目錄(或您要保存文件的目錄路徑) – pas