показать имена столбцов разных таблиц в том же порядке, что и в каждой таблице в sql

Мне нужно принести технический отчет, описывающий всю таблицу с ее столбцами, которая принадлежит определенной базе данных. Дело в том, что требовалось привести, скажем так, описание таблиц в этой базе данных с соблюдением порядка столбцов внутри таблицы.

Например, если у меня есть table_1 со столбцами Column_D, Column_A, Column_M, Column_E в этом конкретном порядке, я должен привести отчет точно так же, как это

Таблица - столбец

Таблица_1 Столбец_D

Таблица_1 Столбец_A

Таблица_1 Столбец_M

Таблица_1 Столбец_E

И так далее со всей таблицей в БД.

Я использую этот запрос

select t.name, c.name
from sys.columns c inner join sys.tables t
on c.object_id = t.object_id

Проблема в том, что я получаю информацию, которую хочу, только ту, которая организована по полю столбца.

Таблица - столбец

Таблица_1 Столбец_A

Таблица_1 Столбец_D

Таблица_1 Столбец_E

Таблица_1 Столбец_M

Но если я добавлю предложение where в запрос

select t.name, c.name
from sys.columns c inner join sys.tables t
on c.object_id = t.object_id
where c.object_id = 123

У меня будет результат, который я хочу, но только для этой конкретной таблицы.

Есть ли способ сделать то, что мне нужно?


person d2907    schedule 28.04.2015    source источник


Ответы (2)


Без предложения order by вы оставляете порядок на усмотрение SQL, чтобы определить его на основе оптимизированного выполнения запроса. Вы, вероятно, хотите:

select t.name, c.name
from sys.columns c 
inner join sys.tables t
    on c.object_id = t.object_id
order by t.name, c.column_id
person Scott C    schedule 28.04.2015

Замените DBName именем вашей базы данных в приведенном ниже запросе.

select Table_Name, Column_Name
from  DbName.information_schema.columns c 
order by table_name, ordinal_position
person Rad    schedule 28.04.2015