2016-06-03 3 views
0

У меня есть пакетный файл, который выполняет хранимую процедуру. Хранимая процедура также возвращает результирующий набор. Я бегу следующий SQL из пакетного файла:Как определить, успешно ли выполнена sqlcmd хранимая процедура

SET NOCOUNT ON 
EXEC spc.vs_load_tables 

Однако хранимая процедура возвращает 1, если он встречает ошибку. Как это сделать? Я использовал ERRORLEVEL. Но ERRORLEVEL равно 0, даже если хранимая процедура возвращает ошибку. Пожалуйста помоги.

+0

Alter хранимую процедуру, чтобы использовать 'RAISERROR'? –

ответ

0

Попробуйте это:

SET NOCOUNT ON 

DECLARE @return_value int 
EXEC @return_value = spc.vs_load_tables 
SELECT 'Return Value' = @return_value 
+0

Как использовать возвращаемое значение в файле bat? Извините за задание новичков, но раньше я не работал в bat-файлах. –

+0

Если вы используете приведенный выше код, вызов в SP будет заполнять переменную '@ return_value' с возвращаемым значением. Оттуда все, что вам нужно сделать, это использовать переменную, чтобы делать все, что вам подходит ... –

Смежные вопросы