SQL-запрос, основанный на именах объектов, хранящихся в самой таблице - PullRequest
0 голосов
/ 27 ноября 2009

Мне было интересно, есть ли способ запроса в MSSQL Server (2005 или 2008 или оба) с использованием имен / столбцов таблиц, которые хранятся внутри самой таблицы. Надеюсь, это имеет смысл, но я не думаю, что ниже приведен пример того, что я имею в виду, рассмотрим таблицы:

tableCollection
----------------------------
CollectionID        ident pk
Name                varchar(30)
CollectionTypeID    int fk

tableCollectionType
---------------------------
CollectionTypeID    ident pk
Name                varchar(30)
TableName           varchar(50)
NameColumn          varchar(50)

tableCollectionLinks
---------------------------
CollectionLinkID    ident pk
CollectionID        int
LinkID              int

Это, очевидно, упрощенный пример, и типы данных предназначены только для того, чтобы показать идею структуры (поэтому не тратьте впустую комментарии на дизайн БД, пожалуйста!).

То, чего я хочу добиться, - это иметь возможность выбирать ссылки для коллекции, а затем использовать 'TableName' и 'NameColumn' в запросе таблицы 'tableCollectionType' для соответствующих таблиц, чтобы получить листинг в 1 запрос а не два (используя возвращаемые значения).

Идея запроса приведена ниже:

SELECT cl.LinkID, c.Name, ct.Name, 
(
      SELECT ***THE OBJECT NAME USING 'TableName' and 'NameColumn'
) As ObjectName
FROM tableCollectionLinks cl
INNER JOIN tableCollectionType c ON cl.CollectionID=c.CollectionID
INNER JOIN tableCollectionType ct ON ct.CollectionTypeID=c.CollectionTypeID
WHERE c.CollectionID=1

Есть идеи?

Спасибо, Стив

Ответы [ 2 ]

0 голосов
/ 27 ноября 2009

Посмотрите на системные представления sys.tables, Sys.columns, sys.types.

Из этих 3 вы можете увидеть, как выбрать нужную информацию.

0 голосов
/ 27 ноября 2009

нет, такого нет. вы можете использовать динамический sql для этого, но в этом нет никакого смысла.

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