Не уверен, что это поможет, но вы можете получить некоторую информацию в плане выполнения. Например, выполните запрос с инструкцией SET SHOWPLAN_XML ON раньше. Он возвращает xml с подробной информацией об инструкции. Единственная проблема заключается в том, что есть много информации, поэтому ваш простой образец запроса получит такой код для списка выходных столбцов.
<OutputList>
<ColumnReference Column="Expr1234" />
</OutputList>
Глядя на Expr1234 вы можете обнаружить, что результат Expr2345 отливают в целое:
<ColumnReference Column="Expr1234" />
<ScalarOperator ScalarString="CONVERT_IMPLICIT(int,[Expr2345],0)">
<Convert DataType="int" Style="0" Implicit="1">
<ScalarOperator>
<Identifier>
<ColumnReference Column="Expr2345" />
</Identifier>
</ScalarOperator>
</Convert>
</ScalarOperator>
Следующий шаг будет найти Expr2345, где вы можете получить, что это:
<ColumnReference Column="Expr2345" />
<ScalarOperator ScalarString="Count(*)">
<Aggregate AggType="countstar" Distinct="0" />
</ScalarOperator>
Так что если вам нужен точный оператор столбца, как это было в запросе, будет сложно получить его из плана. Но если пользовательский формат разрешен, просто чтобы понять, что происходит в столбце, этот способ может помочь.
Хммм, почему-то я думаю, что вы спрашиваете больше, чем INFORMATION_SCHEMA.Columns and Tables. Откуда возникает исходный запрос? Можете ли вы привести пример источника столбца источника? –
Заявление может быть любым. Мы просто хотим знать, как вытащить псевдоним столбца, а затем его источник. Это похоже на разбор, но я полагаю, что эту информацию можно получить из существующих ресурсов. Поэтому в приведенном выше экземпляре я хотел бы получить доступ к «ColumnResult» и узнать, что его создало. В этом случае это будет «COUNT (DISTINCT [ColumnA])». – nathantruant
Я действительно хочу знать, какая схема для любого заданного оператора выбора будет выглядеть (форма), плюс для любого заданного псевдонима, откуда она появилась. – nathantruant