2011-07-14 56 views
3

我有一個MS SQL 2005存儲過程,它接受一個輸出參數。我怎樣才能從一個DOS批處理文件調用這個並獲取出參數的值?我知道我必須使用sqlcmd,但無法找到在那裏我可以通過一個出參數並在dos批處理文件中訪問它的值。從dos批處理文件中調用SQL SP

感謝 維克拉姆

回答

0

我用標準的T-SQL一直在做這類事情(像這樣),但是如果你編輯存儲過程來顯示一行結果集,你可能可以用存儲過程做這樣的事情。

sqlcmd -b -S %COMPUTERNAME% -E -d %DBNAME% -Q "exec getXMLLocation;" -h-1 
    -o SearchResult.txt 
    set /p URI=<SearchResult.txt 
    @echo The XML file URI is: %URI% 
0

在DOS,你會得到在標準輸出返回的任何信息,但你不能輕易操縱這一點。這是否是DOS? PowerShell是一個選項,因爲PowerShell有更多的功能(如果需要存儲此值而不僅僅在命令提示符中顯示,則甚至WSH對於DOS來說也是更好的選擇)。

根據評論添加這個必須是DOS。這裏是我的想法:


首先,我會使用了宏語句直接到stdout:

: out stdout 

一旦你在標準輸出的輸出,你可以使用DOS命令來直接到變量你已經在DOS下建立了。標準輸出是DOS中的句柄1。

我認爲這可能會導致失敗的一個問題是,如果其他項目混亂了標準輸出。我不想通過很多垃圾來解析。

+0

感謝您的快速回復。它必須是DOS系統的其餘部分在DOS中。理想情況下,我希望將返回的值捕獲到dos變量中,以便我可以對其執行一些檢查。 – Vikram

相關問題