У меня есть загрузчик, который связывает установку следующих компонентов:
SQL Server 2008 R2 -> Пакетный файл инициализации базы данных -> MSI продукта
SQL Server устанавливается в автоматическом режиме с помощью файла Configuration.INI. Нет проблем.
Проблема заключается в пакетном файле инициализации БД. Пакетные файлы вызывают две команды OSQL, снабжая их файлом .SQL (с помощью флага -i) для удаления базы данных и создания базы данных.
Когда я повторил% ERRORLEVEL% сразу после вызова OSQL, уровень ошибки равен 9009. У меня есть Google за это, но никаких значимых результатов не было.
Я перезапускаю службу (MSSQL $ SQLExpress) после установки SQL 2008, чтобы быть уверенным.
Вот что самое странное. Если я запустил установку SQL Server 2008 перед запуском загрузчика, он будет работать нормально. Ничего особенного не делал, просто установил (без перезагрузки и тд).
Кроме того, если SQL 2008 уже установлен на машине, загрузчик пропустит установку SQL 2008 и сразу перейдет к инициализации БД. В этом случае БД будет успешно инициализирована.
Есть предложения о том, как действовать?
ИЗМЕНИТЬ
Изучив это дальше, я обнаружил следующее:
Интерпретатор команд (командная строка) устанавливает ERRORLEVEL 9009, когда пакет пытается выполнить программу, которая не найдена.
Итак, почему не обнаруживается SQLCMD? Кстати, я вызываю команду SQLCMD в командном файле вот так:
SQLCMD -S <> -E -I <>