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

Я хочу выбрать количество полей в таблице 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 Ответ

0 голосов
/ 27 января 2019

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

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
...