В связи с упакованным характером выпуска необходимо создать сценарий SQL Server (а точнее, оператор), который может корректно выполняться на SQL Server 7.0 до 2008 года, что, по сути, может достичь этого:
if exists(select * from sys.databases where name = 'Blah')
Причины, по которым это сложно:
Недопустимый SQL 7 'sys.databases'
Недопустимая база данных SQL 2008 '1008 *
Я тупо разобрал номер версии с помощью свойства сервера, чтобы разрешить IF в зависимости от версии:
if (select CONVERT(int,replace(CONVERT(char(3),serverproperty ('productversion')),'.',''))) >= 80
Тогда обнаруженное свойство сервера не существует в SQL 7.
Обратите внимание, что SQL может быть удален от установки, поэтому никакой суеты на локальном компьютере - записи reg / версии файлов и т. Д. Не имеет никакого смысла.
Обработка ошибок SQL Server (особенно 7.0) плохая, или, может быть, я недостаточно хорошо ее понимаю, чтобы заставить ее выполнить попытку / поймать.
У меня теперь проблема слепоты, поэтому любые указатели будут оценены.
Спасибо
Gareth