2015-04-28 6 views
0

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

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

Таблица - колонка

Table_1 Column_D

Table_1 Column_A

Table_1 Column_M

Таблица_1 Колонка_E

И так далее со всей таблицей в базе данных.

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

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

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

Таблица - колонка

Table_1 Column_A

Table_1 Column_D

Table_1 Column_E

Table_1 Column_M

Но если добавить где положение в запросе

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 

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

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

ответ

1

Без предложения по заказу вы оставляете заказ до 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 
1

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

select Table_Name, Column_Name 
from DbName.information_schema.columns c 
order by table_name, ordinal_position