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

Откуда: Саратов
Сообщений: 778
Задача.
Есть два SQL запроса, возвращающих сходный по своему физическому смыслу датасет, с большим количеством полей.
Задача: сравнить эти запросы и синхронизировать output интерфейс, то есть добавить недостающие поля из другого запроса.
В моем представлении для этого нужно иметь табличную функцию, которая распарсит строку sql query, и вернет для каждого возвращаемого из запроса поля его алиас в resultset, и и информацию о его источнике.
Например, для запроса
@SQL=’ SELECT  p.[BusinessEntityID] ID,    p.MiddleName [MN]      FROM [AdventureWorks2014].[Person].Person p’;

Функция вернет результат, аналогичный такому запросу:
SELECT *  FROM (VALUES ('p', '[AdventureWorks2014].[Person].[Person]','[BusinessEntityID]'), ('mn', '[AdventureWorks2014].[Person].[Person]','[MiddleName]') ) AS ParsingFunction(OutputAlias, SourseTable, SourseField);


Имея такую функцию, мы можем замаппить два списка полей из ResultSet-а запросов.
Вопрос: что-нибудь готовое на эту тему есть?
Пока не рассматриваем сложные случаи, с поздапросами и common table expressions.
Спасибо
23 сен 16, 11:03    [19699416]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
set fmt_only on ?
23 сен 16, 11:22    [19699521]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
McCar
Member

Откуда: Саратов
Сообщений: 778
Maxx
set fmt_only on ?

Спасибо за подсказку, похоже то, что нужно.
Только
msdn
Не используйте эту функцию. Эта функция заменена процедурой sp_describe_first_result_set

но теперь я знаю какой инструмент использовать.
23 сен 16, 12:02    [19699773]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
вообще похоже что как то старрно пытаетесь составить свой словарь метаданных..оно вам точно так необходимо то ?
23 сен 16, 12:14    [19699855]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
McCar
Member

Откуда: Саратов
Сообщений: 778
Maxx
вообще похоже что как то старрно пытаетесь составить свой словарь метаданных..оно вам точно так необходимо то ?


Нужно попарно сопоставлять метаданные резалт-сетов для сходных батчей.
Причем сопоставлять нужно как по output alias-ам, чтобы найти недостающие,
так и по source, так как возможно, что одно и тоже поле в запросах отображается под разными алиасами, или наоборот - одинаковые алисы - но разные по своему source definition поля.
23 сен 16, 13:15    [19700250]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
автор
так и по source, так как возможно, что одно и тоже поле в запросах отображается под разными алиасами, или наоборот - одинаковые алисы - но разные по своему source definition поля.

это получить нельзя, только парсить сам запрос, но цель не оправдывает средства :) вам зачем? просто аудит?
23 сен 16, 13:18    [19700280]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
TaPaK
но цель не оправдывает средства :)

видимо у них оправдывает,если вопросы задают
23 сен 16, 13:44    [19700461]     Ответить | Цитировать Сообщить модератору
 Re: Маппинг полей из двух похожих SQL запросов.  [new]
McCar
Member

Откуда: Саратов
Сообщений: 778
Maxx
TaPaK
но цель не оправдывает средства :)

видимо у них оправдывает,если вопросы задают

Да.
Есть две независимых информационных системы, возвращающих одинаковые по физическому смыслу наборы данных из одной базы данных, но поддерживаемые разными командами.
Наша задача - "сделать чтоб там было как тут" и попутно отловить все потенциально неоднозначные и косячные ссылки.
23 сен 16, 18:15    [19702021]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить