Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проверка таблицы фактов на правильносить внешних ключей  [new]
Putin1952
Member

Откуда:
Сообщений: 22
Привет!

Нужно решить задачу по проверке таблицы фактов.
Например есть таблица FAK_Sales, в ней есть внешние ключи DIM_Date_Id, DIM_Customer_Id, ...(может быть сколько угодно измерений).
Нужен запрос, который будет проверять все ли DIM_Date_Id есть в DIM_Date, DIM_Customer_Id в DIM_Customer.

Изначально известно только имя факт таблицы (FAK_Sales в данном случае), а связь с измерениями берется из table extended
properties (sys.extended_properties) - Name - имя измерения, Value - внешний ключ.

Т.е. например
select name, value from sys.extended_properties
where object_name(major_id)='FAK_Sales'

Result
------
Name                     Value
DIM_Date                DIM_Date_Id 
DIM_Customer          DIM_Customer_Id

Нужен запрос, который проанализирует свойства факт талицы на наличие связей с измерениями и затем проверит все ли DIM_Date_Id есть в DIM_Date, DIM_Customer_Id в DIM_Customer?

Спасибо.
21 сен 11, 11:29    [11310254]     Ответить | Цитировать Сообщить модератору
 Re: Проверка таблицы фактов на правильносить внешних ключей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И что не получается? Берете, составляете динамический запрос и получаете результат.
Хотя не понятно, почему сразу не сделать нормальные констрейнты и больше не париться всякой фигней.
21 сен 11, 11:48    [11310427]     Ответить | Цитировать Сообщить модератору
 Re: Проверка таблицы фактов на правильносить внешних ключей  [new]
Putin1952
Member

Откуда:
Сообщений: 22
Так вот и вопрос, как составить этот динамический запрос. Или использовать другой подход
21 сен 11, 11:54    [11310492]     Ответить | Цитировать Сообщить модератору
 Re: Проверка таблицы фактов на правильносить внешних ключей  [new]
Glory
Member

Откуда:
Сообщений: 104751
Putin1952
Так вот и вопрос, как составить этот динамический запрос

Присвоить в переменную последовательно нуджные части проверочного запроса
SELECT + FROM + имя таблицы + JOIN + + WHERE
и потом выполнить этот запрос
21 сен 11, 11:56    [11310514]     Ответить | Цитировать Сообщить модератору
 Re: Проверка таблицы фактов на правильносить внешних ключей  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Putin1952
Например есть таблица FAK_Sales, в ней есть внешние ключи DIM_Date_Id, DIM_Customer_Id, ...(может быть сколько угодно измерений).
Нужен запрос, который будет проверять все ли DIM_Date_Id есть в DIM_Date, DIM_Customer_Id в DIM_Customer.


Из этих 2-х предложений я просто не вижу "состава задачи". А внешние ключи, по вашему, чем занимаются?
21 сен 11, 11:59    [11310539]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить