В прошлом году я помог моему нынешнему клиенту реализовать очень похожий дизайн. Мы написали набор функций и хранимых процедур, которые генерируют представления автоматически. Всякий раз, когда вам нужно изменить целевую базу данных, она генерирует код для удаления и воссоздания всех представлений.
Код не был слишком сложным. Он просто использует системные таблицы для генерации кода представления. Я также написал прототип Powershell, который использует SMO для того же. Ключ заключается в том, чтобы автоматизировать его до такой степени, что требуется один вызов, чтобы вы могли сделать это легко и точно.
Мы также включили таблицу исключений, которая использовала сопоставление шаблонов таблиц для исключения из генерации представления. Он включал в себя столбец схемы и столбец с именем таблицы, каждый из которых принимал шаблоны LIKE
, поэтому вы можете поместить «my_schema» и «%», чтобы исключить все таблицы в схеме my_schema.
Одна главная хранимая процедура приняла имя целевой базы данных и сгенерировала бы весь сценарий. После того, как сценарий сгенерирован, вы можете запустить его в SSMS или автоматизировать эту часть.
Все это было бы еще проще, если бы вы просто хотели создать синонимы. Мы использовали представления, чтобы мы могли изменять списки столбцов и т. Д., Чтобы при необходимости база данных вида отличалась от целевой БД.