[英]How to execute the Stored procedure with output parameter in batch file using SQLCMD?
[英]How can I execute a SQL Server stored procedure from a Batch file and get the Output parameter value?
我有這個 SQL Server 存儲過程,它有一個輸出參數
PROCEDURE [dbo].[test]
@outputx int output
AS
SELECT @outputx = 123
當我在 SQL Server Management Studio 中運行它時,它返回 123:
DECLARE @outputx int
EXEC test @outputx output
SELECT @outputx --> returns 123
我需要從批處理文件或 PowerShell 中調用此存儲過程。
我在.BAT
文件中使用此代碼(我使用OSQL
):
SET tempfile = "C:\myFolder\tempfile.txt"
SET outputx = 0
SET Cmd = EXEC test @outputx output;
SET Cmd = "%Cmd%"
OSQL -S myDBServer -d myDbName -E -e -p -b -Q %Cmd% >%tempfile%
當我檢查tempfile.txt
,它說:
消息 137,級別 15,狀態 2,服務器 myDBServer,第 1 行
必須聲明標量變量“@outputx”。
EXEC 測試@outputx 輸出;
如何從批處理文件執行 SQL Server 存儲過程並獲取輸出參數值?
謝謝
您是否嘗試過 PowerShell 的 SqlServer 模塊? 安裝該模塊后,您可以訪問Invoke-SqlCmd
cmdlet。 您可以使用此 cmdlet 來檢索將在 SQLMgr 中運行的任何內容。
$ReturnValue = invoke-sqlcmd -ServerInstance $ServerInstance -Database $Database -Query $QueryString
該模塊中還有其他命令,包括讀取和寫入表和視圖的命令。
我希望這能夠幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.