Получение имен столбцов из таблицы

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

  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 ответ

Решение

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

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

Больше информации оINFORMATION_SCHEMA.COLUMNS,

Другие вопросы по тегам