Sie können Spalten in sys.columns anzeigen :
Gibt eine Zeile für jede Spalte eines Objekts zurück, das Spalten enthält, z. B. Ansichten oder Tabellen. Das Folgende ist eine Liste von Objekttypen mit Spalten:
- Tabellenwertige Montagefunktionen (FT)
- Inline-SQL-Funktionen mit Tabellenwert (IF)
- Interne Tabellen (IT)
- Systemtabellen (S)
- SQL-Funktionen mit Tabellenwert (TF)
- Benutzertabellen (U)
- Ansichten (V)
Für die Spaltenanzahl in Tabellen kann diese Abfrage verwendet werden:
SELECT [Schema] = s.name
, [Table] = t.name
, number = COUNT(*)
FROM sys.columns c
INNER JOIN sys.tables t ON c.object_id = t.object_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
GROUP BY t.name, s.name
- sys.tables können durch sys.views ersetzt werden, um in Ansichten gezählt zu werden
sys.objects kann auch mit einer WHERE
Klausel für die erforderlichen Typen verwendet werden:
SELECT [Schema] = s.name
, [Table] = o.name
, number = COUNT(*)
, o.type_desc
FROM sys.columns c
INNER JOIN sys.objects o ON c.object_id = o.object_id
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE type IN (
'U' --> U = Table (user-defined)
, 'V' --> V = View
, ...)
GROUP BY o.name, s.name, o.type_desc;
Dies würde auch funktionieren, obwohl es vorzuziehen ist (lesen Sie den Fall gegen INFORMATION_SCHEMA-Ansichten von Aaron Bertrand), die erste Abfrage zu verwenden:
SELECT TABLE_SCHEMA
, TABLE_NAME
, number = COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;
quelle