У меня есть SQL Серверная хранимая процедура с выходным параметром
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".
EXE C test @outputx output;
Как выполнить серверную процедуру SQL Server из пакетного файла и получить значение выходного параметра?
Спасибо