Обработка различных объектов для разных версий SQL Server - PullRequest
1 голос
/ 02 мая 2019

Я создал новый проект базы данных в Visual Studio и добавляю в него свои ранее существующие объекты. Это база данных, которую мы будем развертывать на нескольких разных серверах как минимум с двумя разными версиями сервера sql.

У меня есть представление, которое просматривает группы доступности и извлекает столбец Is_Distributed, если на сервере установлен 2016 год. Мне нужен способ в этом проекте существенно сохранить обе версии, 2014 и 2016 годы, и иметь возможность потенциально развернуть правильную версию в зависимости от того, на какой сервер я развертываю.

Возможно ли это сделать в проекте базы данных в Visual Studios?

1 Ответ

1 голос
/ 02 мая 2019

Одним из решений было бы создание представления совместимости, которое работает либо для справки, но и вместо sys.availability_groups.

. В нижеследующем 2016 году is_distributed будет извлечено из DMV, но в 2014 году какв DMV такого столбца нет, он будет извлечен из OptionalColumns во внешней области и вместо него будет NULL.

CREATE VIEW availability_groups_compat
AS
  SELECT ca.*
  FROM   (VALUES(CAST(NULL AS BIT))) OptionalColumns(is_distributed)
         CROSS APPLY (SELECT group_id,
                             name,
                             resource_id,
                             resource_group_id,
                             failure_condition_level,
                             health_check_timeout,
                             automated_backup_preference,
                             automated_backup_preference_desc,
                             version,
                             basic_features,
                             dtc_support,
                             db_failover,
                             is_distributed,
                             cluster_type,
                             cluster_type_desc,
                             required_synchronized_secondaries_to_commit,
                             sequence_number
                      FROM   sys.availability_groups) ca 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...