2011-09-30 37 views
2

在我的Java程序中,我嘗試使用sqlcmd通過getRuntime.exec()執行一堆SQL腳本。使用sqlcmd和Java在SQL Server中抑制「X rows affected」

早些時候,我一直在使用osql這樣 -

osql -n -S SERVER -U sa -P PASSWORD -q "SET NOCOUNT ON" -i "INPUTSCRIPT.sql" 

然而,在sqlcmd的情況下,-i-q交換機是互斥的。如何在sqlcmd中執行此操作?

注:

  1. 我寧願不修改SQL腳本包括在 每個文件SET NOCOUNT ON

  2. 已經有一個非常類似的問題here。該解決方案討論設置環境變量。這可能使用Java?

回答

6

您可以指定i開關多個腳本,所以你可以這樣做:

sqlcmd ... -i SetNoCountOn.sql,MyScript1.sql,MyScript2.sql 

也就是說,創建只具有SET NOCOUNT ON

+0

這就像一個魅力一個額外的腳本。但是當我執行成千上萬的腳本時,處理時間相當明顯(但不是太大)。有什麼方法可以改進嗎? – GPX