2016-11-11 3 views
2

У меня есть процесс, и первый шаг - проверить статус другого процесса. Если другой процесс будет выполнен, я хотел бы выполнить остальные шаги, и если бы я не захотел уйти с работы.Как сделать неудачный шаг задания агента SQL Server специально

У меня есть таблица, которая смотрит в статус, и если все сделано, она будет отмечена как «сделано». Итак, что я должен сделать на первом шаге, чтобы, когда статус не был выполнен, он делает шаг 1 неудачным?

+0

, так что вы хотите, чтобы SQL всегда выдавал ошибку? например, «select (Select 1 union SELECT 2) X ' – Cato

+0

' RAISERROR (' Fail! ', 16, 1) ' –

ответ

1

Есть много способов заставить SQL-сервер выкинуть (или поднять) ошибку, но я бы рекомендовал использовать THROW для SQL-Server 2012 + или RAISERROR ниже этого, поскольку это ваше фактическое намерение. Таким образом, вы можете сделать что-то вроде:

IF EXISTS(SELECT * FROM StatusTable WHERE status <> 'done') 
BEGIN 
    ;THROW 51000, 'Process Is Not Finished', 1 
END