Я пытался написать некоторый код SQL, который при предоставлении представления найдет столбцы, на которые ссылаются столбцы представления, и решит, есть ли какие-либо индексы для этих столбцов.Конечная цель - предоставить пользователям список столбцов, которые можно было бы использовать при запросах к представлению.
В настоящее время я могу только найти столбцы, которые использует представление (и, соответственно, их индексы), но яне могу сопоставить их со столбцами индекса.
Например:
У меня есть TableA
, в котором есть 5 столбцов: ID
, Name
, Val1
, Val2
, TableBID
У меня есть TableB
, у которого есть 3 столбца: ID
, Name
, Code
Затем я создаю представление View1
, которое:
SELECT A.ID,
Name,
Val1
FROM TableA A
INNER JOIN TableB ON A.TableBID = B.ID
WHERE B.Code = 'AAA'
Когда я запрашиваю ссылки, используя:
SELECT *
FROM sys.dm_sql_referenced_entities('dbo.View1', 'OBJECT')
, я получу список ссылок на таблицы / столбцы в нем, но без указания того, какой столбец ссылок ссылается на что.
Можно ли каким-либо образом получить доступ к необходимой мне информации, помните, что я не могу выполнить сопоставление имен, поскольку столбцы в псевдониме могут использовать псевдонимы и, следовательно, могут не иметь таких имен, как базовые данные.1030 *
Я использую SQL Server 2008 с пакетом обновления 1 (SP1), если это как-то повлияет.