Предположим, у нас есть запрос Q1 (хранится как представление V1), результаты которого мы храним в таблице T1.
Мне было интересно, есть ли какой-нибудь способ обеспечить автоматическую дельта-логику для T1,Это означает, что каждый раз, когда изменяется строка любого из источников данных Q1 (I / U / D), T1 модифицируется таким образом, что базовый запрос является правильным.
Один способ, которым я могу представитьэто возможно, чтобы убедиться, что каждая строка T1 связана (с дополнительными столбцами или даже таблицами) с каждым ключом каждой таблицы, на которую опирается Q1.Затем, в каждой из этих таблиц должен быть триггер, который сохраняет следы ключей и изменения строк.Затем, когда наступает время пересчета, вычисляется (пере) вычисляется набор строк T1, зависящих как минимум от одного модифицированного ключа.
Это достаточно сложно для конкретного запроса.Но как насчет создания автоматизированного способа?То есть создайте процесс, который принимает имя представления в качестве параметра и реализует его.
Я понимаю, что это звучит чрезвычайно сложно - по крайней мере, мне кажется, мне нужен полный анализатор SQL-серверавыводить имена таблиц.
С другой стороны, я не могу быть единственным, кто так подумал.Дельта-логика очень полезна в таблицах с большим количеством операций чтения, чем записей, например, таблиц транзакций.
Я думаю, что индексированные представления являются реализацией этого, но с ограниченной функциональностью (многие вещи не могут быть использованы, в частности, подзапросы).
Конечно, я бы не стал просить кого-то разработать что-то, чего MS не сделала ... для меня.Итак, вопрос: Доступна ли автоматическая дельта-логика?