У меня есть хранимая процедура USP_A
с логикой, как следующее:msdb.dbo.sp_start_job застрял в хранимой процедуре
......
exec dbo.usp_Log 'Start to run job job1'
Exec @intErrorCode = msdb.dbo.sp_start_job 'job1'
IF @intErrorCode <> 0 Goto errorHandling
exec dbo.usp_Log 'End to run job job1'
......
Но когда я запускаю эту хранимую процедуру, она застряла, и когда я проверяю журнал я могу только см. сообщение «Начать выполнение задания 1». Также на мониторе заданий агента SQL Server я не вижу, чтобы это задание запускалось.
Но если я вручную запустить
Exec @intErrorCode = msdb.dbo.sp_start_job 'job1'
он работает отлично.
Сервер SQL является Microsoft SQL Server 2005 Enterprise Edition (версия 9.00.5000.00)
Но в моей секции errorHandling он не записывает никаких журналов ошибок. И если я просто запускаю этот Exec @intErrorCode = msdb.dbo.sp_start_job 'job1', он отлично работает. – mhan0125
Попробуйте использовать синтаксис BEGIN TRY. Он более надежен при ошибках захвата. См. Http://stackoverflow.com/questions/1111501/error-and-or-try-catch –
Возможно, что он не работает в другом пользовательском контексте, который не имеет права запускать процедуру sp_start_job ... но до тех пор, пока вы увидите сообщение об ошибке, о котором вы точно не знаете. –