我有一個MS SQL 2005存儲過程,它接受一個輸出參數。我怎樣才能從一個DOS批處理文件調用這個並獲取出參數的值?我知道我必須使用sqlcmd,但無法找到在那裏我可以通過一個出參數並在dos批處理文件中訪問它的值。從dos批處理文件中調用SQL SP
感謝 維克拉姆
我有一個MS SQL 2005存儲過程,它接受一個輸出參數。我怎樣才能從一個DOS批處理文件調用這個並獲取出參數的值?我知道我必須使用sqlcmd,但無法找到在那裏我可以通過一個出參數並在dos批處理文件中訪問它的值。從dos批處理文件中調用SQL SP
感謝 維克拉姆
我用標準的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%
在DOS,你會得到在標準輸出返回的任何信息,但你不能輕易操縱這一點。這是否是DOS? PowerShell是一個選項,因爲PowerShell有更多的功能(如果需要存儲此值而不僅僅在命令提示符中顯示,則甚至WSH對於DOS來說也是更好的選擇)。
根據評論添加這個必須是DOS。這裏是我的想法:
首先,我會使用了宏語句直接到stdout:
: out stdout
一旦你在標準輸出的輸出,你可以使用DOS命令來直接到變量你已經在DOS下建立了。標準輸出是DOS中的句柄1。
我認爲這可能會導致失敗的一個問題是,如果其他項目混亂了標準輸出。我不想通過很多垃圾來解析。
感謝您的快速回復。它必須是DOS系統的其餘部分在DOS中。理想情況下,我希望將返回的值捕獲到dos變量中,以便我可以對其執行一些檢查。 – Vikram