2012-10-25 59 views
0

我在文件夾中有一個腳本文件。我想使用TSQL運行此腳本而不在SSMS中打開它,因爲我將使用SSIS來運行此操作腳本來生成CSV。通過使用osql.exe運行.sql腳本生成.csv文件

我已經使用OSQL來實現這一點,通過使用執行進程任務,但它沒有給我準確的結果,我正在尋找。它在csv中產生空間。我通過右擊作爲CSV選項導出甲17 MB文件變成了1GB當我使用OSQL code.The OSQL我用執行是:

-E -S CCCMSDSQL20,1819 -d SHARE_SCRUB -q "SET NOCOUNT ON" -i "C:\Scripts\.SQL" -o "C:\Scripts\.csv" -n -h-1 -s"," -w 700

我喜歡TSQL腳本可以達到同樣的,所以我可以在執行SQL任務中使用它並獲得結果。

編輯: 我正在從一個文件夾中的多個.sql文件生成多個csv。我正在使用for每個循環容器並執行現在的進程任務。我想要更改執行進程任務以執行sql任務並使用此腳本生成多個文件。

如果可以編寫一個可以在一個腳本中執行循環和生成CSV文件的TSQL代碼,我可以在不使用該軟件包的情況下使用它。

感謝您的時間和幫助。

+1

如果您可以解釋爲什麼需要使用.sql腳本而不是SSIS數據流來導出數據,這可能會有所幫助。 – Pondlife

回答

0

您的osql參數是我期望的,我只是做了一個小的演示來做類似的工作,並且沒有任何問題。

我會檢查你的實際SQL腳本及其在SSMS中的結果,以確保它不會比你想要的更多。

此外,它可能不是你想要的,因爲你打算也將這個與執行SQL任務一起使用,但我會指出,bcp是專門用於複製數據進出SQL的,你可以使用使用opendatasource創建純粹的T-SQL來創建CSV文件,而不使用-o將​​OSQL的結果轉儲到文件。

+0

@Pondlife:感謝您的回覆和編輯。我所要求的SQL腳本是將其用於執行SQL任務,該任務又用於對每個循環容器執行多個腳本並生成CSV。現在我正在使用Execute Process任務和OSQL,正如我上面描述的那樣給出錯誤。所以TSQl腳本可以幫助我實現這個 – user1757018

+0

感謝您的答覆。您可以解釋我如何使用opendatasource.I特別針對TSQL這樣我就可以完全將OSQL從我的代碼中取出。 – user1757018

+0

@ user1757018看一看http://www.sqlservercentral.com/articles/OpenDataSource/61552/那個主要是關於從它讀取的,但它是相同的基本概念並且鏈接到其他資源。 – TimothyAWiseman

相關問題