在用Microsoft SQL的「SQL Server 代理程式」的作業,執行每週定期要做的報表。
結果需要轉成Excel格式,不過不論我將「輸出檔案」存成「.CSV」或是「.XLS」,結果都會全部擠在同一個欄位。
(我有試過使用「資料剖析」做欄位的分割,但是因為語法執行出來的資料,會有空格之類的問題,所以沒辦法剖析成需要的結果。)
不知道有沒有什麼方法,可以在執行後,就可以像是一般「執行」後的結果,各欄位都分好好的嗎?
謝謝
我是使用 SQL 2000 的 DTS Package 轉的
您可以將 Report 的結果存成一個表格
Create 一個 Excel 檔,並在 Excel 檔先將表頭欄位設定好
然後透過 DTS 將表格輸出到 Excel
這樣就直接是 Excel 輸出格式了,請參考
對不起,我一直找到不DTS的選項,
請問 DTS 的選項在哪裡?
是不是需要使用 Visual Basic 6.0 ?
謝謝。
如果您是 SQL Server 2000 在 Enterprise Manager 中的 資料轉換服務 (Data Transformation Service) 選本機封裝(Local Package)中去新增
不需要寫程式滴
如果是 SQL Server 2005以上則為 SSIS(SQL Server Integration Services)
But 我沒用過
謝謝!
我試了有成功,格式是可以直接轉好了,不過…
它有沒有辦法像「SQL Server 代理程式」的作業,可以自動執行每週定期要做的報表呢?
在您的 DTS Package 上按右鍵可以排程
您可以在您的 Agent 執行完後再去執行這個 DTS Package
我找不到設定排程的地方?
是選「執行步作」嗎?
不是的
您要離開開啟的 DTS Package
在本機封裝的 List 上面去選取您建立的封裝
在上面按右鍵
請看討論
我成功的將「排程封裝」設定好了,設定如下:
發生頻率:「每天」
每日:每隔「1天」
每日頻率:執行一次於「下午 02:40」
抹續時間:「2009/01/15」和「沒有結束日期」
但我發現,除非我要自已去在「封裝」上按右鍵,手動執行「執行封裝」才會執行,
我設定的時間,說真的,存檔的地方是有產生「正確格式」的excal了,不過,裡頭的內容
不過放多久都不會產生。
我不知道設定的「排程封裝」有沒有成功。
我看已經建好欄位名稱的excel,在設定的時間過了之後,裡頭也沒有增加資料。
但可以從細目的時間中看到這個排程已經執行過了,不過,我確找不到執行後的結果在哪裡?
還是只有用手動執行「執行封裝」才會看excel有欄位也有資料。
我發現問題出在,排程封裝 過後,是在代理程式 作業的地方會出現剛剛設排程的專案,不過,我看內容,在輸出檔案的地方是空白值,而且在寫語法的地方也是一長串我看起來沒有義意的字。
最後的結果就是失敗,沒有算出結果。
還是只有在剛做完「排程封裝」後,就用手動執行「執行封裝」才會看excel有欄位也有資料。
還是謝謝jamesjan兄,一直回覆我的問題,謝謝。
可以試著用 bcp 指令
bcp 來源table out 目的\xx.xls -c -U"登入帳號" -P"登入密碼"'
請bcp指令,要如何使用?
是否可以大概說明一下!
謝謝
在該台 SQL Server 的主機上
開啟 cmd
輸入 bcp
C:\>bcp
使用方式: bcp {dbtable | query} {in | out | queryout | format} datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-L lastrow] [-b batchsize]
[-n native type] [-c character type] [-w wide character type]
[-N keep non-text native] [-V file format version] [-q quoted identifier]
[-C code page specifier] [-t field terminator] [-r row terminator]
[-i inputfile] [-o outfile] [-a packetsize]
[-S server name] [-U username] [-P password]
[-T trusted connection] [-v version] [-R regional enable]
[-k keep null values] [-E keep identity values]
[-h "load hints"]