Доброго времени суток!
Прошу помощи с данной байдой:
SQL2005 9.00.2047 Enterprise
база данных бекапится по джобу раз в сутки
при этом необходимо обеспечить следующее условие
если файл, указанный в TSQL инструкции как
BACKUP DATABASE [xxx] TO DISK = N'C:\xxx.BAK'
физически существует, то выполнить differential backup,
если же нет, то выполнить полный бекап базы,
и в дальнейшем использовать этот файл для diff бекапов.
уперся с проверкой наличия файла
проверяю таким образом
BEGIN TRY
RESTORE VERIFYONLY FROM DISK = @FILENAME WITH CONTINUE_AFTER_ERROR
END TRY
BEGIN CATCH
IF (@@Error=0) GOTO GetDiffsBAK ELSE GOTO GetFullBAK
END CATCH
GO
GetDiffsBAK:
...
GetFullBAK:
...
если выполняю вручную, как запрос, все нормально создается
однако всеравно с ошибкой
Msg 3201, Level 16, State 2, Line 2
Cannot open backup device 'C:\xxx.bak'. Operating system error 2(error not found).
вполне ожидаемо, и это ошибка идет в виндусовый Event
джоб же в таких раскладах не выполняется вообще
мне нужно исключить ее вообще приняв в обработку catch
короче, получется не то что нужно
другого способа не нашел, копал BOL
BACKUP INIT|SKIP тоже не то, мне нужно получить статус файла - есть,нет
и исходя из этого выполнить дальнейшие действия
подозреваю что изобретаю велосипед
помогите с вектором копания в рамках условия
сенькс