Получение имен столбцов из таблицы - PullRequest
1 голос
/ 07 октября 2011

Я пытаюсь получить имена столбцов для данной таблицы. Поэтому я написал такой запрос:

  SELECT   sc.Name
   FROM     Asdim.dbo.sysobjects so
            INNER JOIN Asdim.dbo.syscolumns sc ON so.id = sc.id
            INNER JOIN Asdim.dbo.systypes st ON sc.xtype = st.xusertype
   WHERE    so.Name = 'Admin'

Проблема в том, что у меня есть две таблицы с именем «Admin», но они имеют разные схемы. Поэтому, когда я запускаю этот запрос:

SELECT * FROM Asdim.dbo.sysobjects
WHERE name LIKE 'Admin'

Я получаю две записи, поскольку имена таблиц совпадают. Есть ли способ, который я мог бы отфильтровать на основе имени схемы тоже?

1 Ответ

2 голосов
/ 07 октября 2011

Использование таблиц INFORMATION_SCHEMA будет проще и удобнее:

SELECT c.column_name
  FROM information_schema.columns c
 WHERE c.table_name = 'Admin' and c.table_schema = 'SCHEMA'

Подробнее о INFORMATION_SCHEMA.COLUMNS.

...