Ответ 1
это возможно, но не со встроенным способом, я боюсь. Вам нужно будет вручную отредактировать график.
Учитывая, что таблицы отслеживания изменений предлагают tran_end_time, то есть время, когда значение свойства должно восприниматься как сохраненное, вам нужно будет сделать запрос, который извлекает все отдельные периоды состояний таблицы, присоединяется к отслеживать изменения свойств и затем поворачивать (иметь представление в той же форме, что и таблица). Не забудьте объединиться с самим состоянием таблицы, чтобы получить значения, которые не были изменены/отслежены для полноты.
Конечный результат, упрощенный, должен выглядеть как
RN PK PropA PropB FromDate ToDate
1 1 'Ver1' 'Ver1' 2012-01-01 09:00 2012-01-02 08:00
2 1 'Ver1' 'Ver2' 2012-01-02 08:00 2012-01-03 07:00
3 1 'Ver2' 'Ver2' 2012-01-03 07:00 *getdate()*
4 2 'Ver1' 'Ver1' 2012-01-01 05:00 2012-01-02 06:00
5 2 'Ver1' 'Ver2' 2012-01-02 06:00 2012-01-03 01:00
6 2 'Ver2' 'Ver2' 2012-01-03 01:00 *getdate()*
обратите внимание, что getdate() действителен, если строка не была удалена, и в этом случае она должна быть заменена датой удаления
EDIT, для двух вариантов использования. Первая точка легко адресована ему вопросом построения графика временных объектов, а затем фильтрацией:
declare @pointInTime datetime = '20120102 10:00';
select * from Reconstructed_TG where FromDate <= @pointInTime and @pointInTime < ToDate
вторая точка может быть легко сгенерирована с предложением EXCEPT, как вы указываете. с учетом вышеуказанного запроса:
declare @pointInTimeA datetime = '20120102 10:00';
declare @pointInTimeB datetime = '20120103 01:00';
select * from Reconstructed_TG where FromDate <= @pointInTimeA and @pointInTimeA < ToDate
EXCEPT
select * from Reconstructed_TG where FromDate <= @pointInTimeB and @pointInTimeB < ToDate
но в предложении except
представлены только строки, имеющие хотя бы одно значение столбца; я не знаю, действительно ли эта информация имеет смысл для человеческого глаза. В зависимости от ваших потребностей запрос, который работает непосредственно с данными cdc
, может быть более уместным.