Столбцы представления SQL Server 2008 соответствуют базовым столбцам таблицы - PullRequest
3 голосов
/ 20 апреля 2010

Я пытался написать некоторый код 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), если это как-то повлияет.

1 Ответ

0 голосов
/ 26 апреля 2011

Переименование столбцов в представлении с использованием уникальной комбинации Tablename + '_' + ColumnName для каждого столбца представления. Затем вы можете разделить столбец представлений на таблицу и столбец.

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