Wie finde ich die Spaltenanzahl einer Tabelle in einer Datenbank aus der SQL Server-Master-Datenbank?

8

Wenn ich den Datenbanknamen und den Tabellennamen kenne, wie finde ich Spaltenanzahl der Tabelle aus der SQL Server-Master-Datenbank?

Was ist der schnellste Weg, die Spaltenanzahl einer Datenbanktabelle zu finden?

Was halten Sie von der Leistung dieser Abfrage?

%Vor%

Ich muss SQL Server 2000 und höher unterstützen.

    
why 05.12.2009, 12:20
quelle

6 Antworten

17

Es kann je nach Version von SQL Server leicht variieren, aber dies wird für 2005 funktionieren:

%Vor%

Im Jahr 2000:

%Vor%

Wenn Sie mehrere Tabellen mit demselben genauen Tabellennamen unter verschiedenen Besitzern haben, müssen Sie dies berücksichtigen. Ich vergesse den Spaltennamen in sysobjects, um von oben nach unten zu sehen.

UPDATE FÜR NEUERE VERSIONEN von SQL Server und ANSI-Kompatibilität:

%Vor%     
Tom H 05.12.2009, 12:31
quelle
7

Sie könnten (und sollten) dies tun - versuchen Sie, die Ansicht "sysobjects" zu vermeiden - sie wird nicht mehr unterstützt und möglicherweise in SQL Server 2008 R2 oder höher entfernt.

Verwenden Sie stattdessen die Katalogsicht "sys" in der Datenbank:

%Vor%

Das sollte den Trick machen, und es ist wahrscheinlich der einfachste und schnellste Weg, es zu tun.

    
marc_s 05.12.2009 13:33
quelle
6

Wie wäre es mit

? %Vor%     
Raj 05.12.2009 12:50
quelle
3

Sie könnten so etwas ausgeben,

%Vor%     
Rahul Rajan Pillai 21.12.2013 07:06
quelle
1
%Vor%     
SameerDhoot 18.07.2013 14:52
quelle
1

Sie können auch alle Tabellen mit ihren Spalten anzeigen

SELECT COUNT(column_name) as "column_count", table_name FROM INFORMATION_SCHEMA.COLUMNS GROUP BY table_name ORDER BY "column_count" DESC

    
Marius 07.01.2014 14:02
quelle

Tags und Links