2015-09-01 34 views
1

我正在使用SQL Server數據庫項目。部署.dacpac文件我使用帶命令行參數的SqlPackage.exe。如何在dacpac中創建部署後腳本的日誌?

使用動作:DriftReport,我可以創建對象的日誌(添加/更新/修改)。但是我仍然無法爲部署後腳本創建日誌(像插入,更新等操作)。

有什麼辦法可以爲成功和失敗數據插入創建報告。

+1

您是否嘗試將輸出管道輸送到文件?這會給你一些東西。但是,要真正抓住一切,你需要手工編寫代碼。 –

+0

我試圖保存命令行輸出,它將在執行命令發佈後顯示。如果任何後期部署腳本失敗,它將顯示在控制檯上。 –

回答

2

我已經做了什麼來達到這個目標與Peter的評論大致相同。我有一個批處理文件的東西如下

sqlpackage.exe /a:publish /tcs:"the connection string" /sf:".\package.dacpac" >"%1" 2>"%2" 
FOR %%A IN ("%2") DO SET FileSize=%%~zA 
if %FileSize% gtr 0 start notepad "%2" 

然後我會運行批處理爲:

thebatch.bat result.txt error_result.text 

當時的想法是這個控制檯命令的輸出重定向到文件「的Result.txt」(通過使用「>」)並將錯誤消息重定向到「error_result.text」(通過使用「2>」),然後依靠批處理文件中的%〜z來獲取文件大小並僅在出錯時打開文件。

+1

西蒙是正確的,需要注意的是「>」和「2>」,因爲您需要重定向stdout和stderr來獲取所有消息。 –