
Views & Inline Functions
Порівнювати і синхронізувати Views & Inline Functions.
Створювати
Створювати нові, якщо вони не існують в цільовій базі даних.
Перестворювати
Перестворювати (видалити і створити) існуючі аби усунути відмінності.
Видаляти
Видаляти існуючі, якщо їх немає в шаблонній базі даних.
Перестворити Всі
Перестворювати всі об’єкти даного типу в цільовій базі даних.
ANSI_NULLS
Якщо ця опція не встановлена, алгоритм порівняння буде ігнорувати властивість ANSI_NULLS views при порівнянні, однак, коли view перестворюється через інші відмінності, буде взяте нове значення.

Додавати оновлення Views & Inline Functions
Додавати в скрипт синхронізації спеціальний алгоритм для оновлення Views & Inline Functions в відповідному порядку.
Оновлювати за зміненими залежностями
Оновлювати всі об’єкти, які посилаються на змінені або перестворені об’єкти з моменту виконання підготовчого скрипту.
Оновлювати за простроченими залежностями
Оновлювати всі об’єкти, які посилаються на інші об’єкти з більш новою датою модифікації.
Всі
Оновлювати всі об’єкти.
Оновлення метаданих за допомогою sp_refreshview і sp_refreshsqlmodule
Кінцевий етап синхронізації структури бази даних - це оновлення метаданих views та inline-функцій. Нижче наведена частина алгоритму, який здійснює оновлення views та inline-функцій ітераційним способом в необхідному порядку на основі залежностей між об'єктами.
Тип алгоритму визначається встановленими опціями в налаштуванні Додавати оновлення Views & Inline Functions.
...
WHILE @@FETCH_STATUS = 0 BEGIN
SET @found = @found + 1;
IF -- skip with schemabinding
@is_schema_bound = 0
-- skip if it is not referencing to anything
AND @last_referenced_modify_date IS NOT NULL AND (
-- the referenced object has been changed by this synchronization script
@last_referenced_modify_date > @sync_start_date
-- the referenced object is up to date
OR (@is_refresh_overdue = 1 AND @last_referenced_modify_date > @modify_date) ) BEGIN
SET @iterations = @iterations + 1;
BEGIN TRY
IF @type = 'V' BEGIN
EXECUTE sp_refreshview @name;
END ELSE BEGIN
EXECUTE sp_refreshsqlmodule @name;
END;
...