Как сделать MultiLine Table-Valued Function в SQL Server 2008? - PullRequest
0 голосов
/ 15 июня 2011

У меня есть запрос, который необходимо объединить почти со всеми запросами отчетов. Количество столбцов, которые производит этот запрос, также не является фиксированным (я использую сводку, чтобы получить столбцы).

Мне нужно создать функцию SQL, которую можно использовать в качестве таблицы, чтобы я мог объединить ее с другими таблицами, чтобы получить нужные данные. Как мне это сделать?

Есть ли другой способ сделать это? Я пытался использовать представления, но, возможно, представления не поддерживают временные таблицы.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

Функция должна выдавать результат, который имеет согласованные метаданные (число, тип и порядок столбцов) при каждом вызове. Это не потому, что это функция, а потому, что невозможно создать путь доступа для функции, которая меняет форму возвращаемого результата. Это автоматически исключает любую попытку сделать «динамический» поворот с использованием функций или представлений. Это могут делать только хранимые процедуры, использующие динамический SQL, и результат не может быть соединен напрямую, он должен быть записан во временные таблицы и обработан повторно. Если результирующий набор меняет форму, конечно, вся обработка должна адаптироваться и основываться на динамическом SQL. Обычно такие «динамические» точки являются областью представления и обрабатываются в инструментах отчетности и анализа, таких как Excel, которые поддерживают его гораздо лучше.

0 голосов
/ 15 июня 2011

Рассмотрите возможность использования табличной пользовательской функции .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...