предположим, ниже мой запрос.
DECLARE @INT INT
SET @INT = (SELECT COUNT(1) FROM MyTable)
IF (@INT = 0)
RAISERROR('Fail',16,1)
Я хочу использовать этот запрос и создать задание SQL Server, используя тип «Операционная система (CmdExec)». Я хочу, чтобы шаг SQL Job был успешным, если @INT ‹> 0, и не выполнялся, если @INT = 0.
Как я могу написать cmd?
Моя попытка (и она не работает)... сервер отличается от того, где я буду настраивать работу.
sqlcmd -S 123.45.67.890 -E -V15 -d MyDB -Q "DECLARE @INT INT
SET @INT = (SELECT COUNT(1) FROM MyTable)
IF (@INT = 0)
RAISERROR('Fail',16,1)" -b
Сообщение о сбое работы.
Выполняется от имени пользователя: LocalSVR\USER. Сообщение 105, уровень 15, состояние 1, сервер RemoteSVR, строка 1 Незакрытые кавычки после строки символов «DECLARE @INT INT». Код завершения процесса 15. Шаг не выполнен.
Обратите внимание, что этот шаг не выполняется по той же причине, когда MyTable имеет более 1 записи.
Обновление: по предложению Скотта я изменил форматирование (убрал разрывы строк), и, похоже, это работает. @ Скотт, не знаю, как пометить твой комментарий как ответ. Если вы можете написать ответ, я отмечу его как ответ. Ваше здоровье!!!