Как выбрать количество полей в таблице с помощью Max(ordinal_position), используя метаданные ifnormation_schema_fileds

Я хочу выбрать количество полей в таблице MS SQL, используя информацию_schema.columns ordinal_position; то есть выберите....MAX(ordinal_position) из information_schema.columns .. [mydatabase] [mytable].

Я не хочу использовать функцию Count(), которая обычно дается в качестве решения, так как это займет слишком много времени, как сырое. Пожалуйста, не читайте мне лекцию о том, почему я не должен делать это..

- основной запрос

Select bla1 bla2, bla3,
  (select max(ordinal_position) as Field_Count — sub query
     from information_schema.columns
      WHERE (sub query database, and table parameters match
             main query’s database and table name
            )
 FROM [database, tablename] —- parameters;

Результат:

Bla1(database name) Bla1(table) Bla3 Field_count
Mydatabase           Table1       4
Mydatabase.          Table2.      2
Mydatabase.          Table3.      5

.....

1 ответ

Вам нужно что-то подобное? Но вы должны запустить его в цикле для каждого БД...

SELECT [SCHEMA] = SCHEMA_NAME(object_id)
    , [TABLE] = OBJECT_NAME(object_id)
    , Max_column_id = MAX(column_id)
    , Count_Columns = COUNT(*)
FROM sys.columns
GROUP BY object_id
Другие вопросы по тегам