Я провел некоторое исследование по этому вопросу, но пока не имею решения. То, что я хочу получить, - это зависимости уровня столбца в представлении. Итак, скажем, у нас есть таблица вроде этого
create table TEST(
first_name varchar(10),
last_name varchar(10),
street varchar(10),
number int
)
и вот так:
create view vTEST
as
select
first_name + ' ' + last_name as [name],
street + ' ' + cast(number as varchar(max)) as [address]
from dbo.TEST
Мне бы хотелось получить результат следующим образом:
column_name depends_on_column_name depends_on_table_name
----------- --------------------- --------------------
name first_name dbo.TEST
name last_name dbo.TEST
address street dbo.TEST
address number dbo.TEST
Я пробовал sys.dm_sql_referenced_entities
, но referencing_minor_id
всегда существует 0 для просмотра.
select
referencing_minor_id,
referenced_schema_name + '.' + referenced_entity_name as depends_on_table_name,
referenced_minor_name as depends_on_column_name
from sys.dm_sql_referenced_entities('dbo.vTEST', 'OBJECT')
referencing_minor_id depends_on_table_name depends_on_column_name
-------------------- --------------------- ----------------------
0 dbo.TEST NULL
0 dbo.TEST first_name
0 dbo.TEST last_name
0 dbo.TEST street
0 dbo.TEST number
То же самое верно для sys.sql_expression_dependencies
и для устаревшего sys.sql_dependencies
.
Так что я пропущу что-то или это невозможно сделать?
Есть некоторые связанные вопросы (Найти имя реального столбца псевдонима, используемого в представлении?), но, как я уже сказал, я не нашел рабочего решения.
РЕДАКТИРОВАТЬ 1. Я пытался использовать ЦАП для запроса, если эта информация хранится где-то в Системные базовые таблицы но не нашли его