簡體   English   中英

如何從批處理文件執行 SQL Server 存儲過程並獲取輸出參數值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM