Получение имен столбцов из таблицы
Я пытаюсь получить имена столбцов для данной таблицы. Поэтому я написал такой запрос:
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
,