Microsoft SQL Server 2012 Медленно меняющиеся измерения Исторические атрибуты Дата изменения, а также статус

Я застрял со следующей проблемой на MS SQL Server 2012 с VS 2010:

Я хочу использовать SSIS для медленно меняющихся измерений для изменения исторического атрибута. Поскольку мастер дает мне возможность решить, сохранять ли информацию, независимо от того, устарела ли запись или нет, в одном столбце или в двух столбцах даты (см. https://msdn.microsoft.com/en-us/library/ms187958.aspx). Но я хочу сделать и то, и другое, сохранить информацию в столбце «Статус», а также обновить «Дата начала» и «Дата окончания».

Пример того, как должна выглядеть таблица сотрудников после использования SSIS:

Сотрудница Эмма Джонсон выходит замуж и, таким образом, 20 февраля 2013 г. меняет свою фамилию на Смит.

ID сотрудника | IDСотрудникаAlternateKey | Имя | Фамилия | Дата начала | Дата окончания | Статус

1 | 123 | Эмма | Джонсон | 01-01-2013 | 20-02-2013 | НУЛЕВОЙ

2 | 123 | Эмма | Смит | 20-02-2013 | НУЛЕВОЙ | Текущий

Спасибо за вашу помощь!


person DEls    schedule 29.01.2015    source источник
comment
Я хочу использовать SSIS для медленно меняющихся измерений — мой совет: не делайте этого! См. книгу Expert Cube development   -  person Mitch Wheat    schedule 29.01.2015


Ответы (1)


Как насчет того, чтобы реализовать эту свою логику в разделении, создаваемом компонентом медленно изменяющихся измерений?

если запись должна быть вставлена, установить статус «текущая»; и вставьте запись в измерение

если запись подлежит обновлению, установить статус «NULL»; и обновить запись в измерении

person SQL.injection    schedule 29.01.2015
comment
Спасибо, мне удалось это сделать, обновив запрос в «Команде OLE DB» для «Вывод вставки исторических атрибутов» — Путь: UPDATE [dbo]. [DimEmployee] SET [EndDate] = ?, [Status] = NULL WHERE [EmployeeNationalIDAlternateKey знак равно И [EndDate] имеет значение NULL - person DEls; 29.01.2015