Как выбрать количество полей в таблице с помощью 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