Wenn Sie eine genaue Anzahl benötigen, müssen Sie einen COUNT(*)
ausführen, der den gruppierten Index scannt.
Sie können eine grobe Zählung mit dem sys.partitions
Schema erhalten, wie hier gezeigt Ссылка
Update: Um die Anzahl in eine Variable zu bekommen:
%Vor% Ein bisschen spät zur Party hier, aber in SQL Server 2005 können Sie auch die gespeicherte Prozedur sp_spaceused
verwenden:
Ich habe mir angewöhnt, sp_spaceused
anstelle von SELECT COUNT(*) FROM Table
zu verwenden, weil es viel schneller ist. Es wird jedoch höchstwahrscheinlich nicht so genau wie COUNT (*) sein.
MSDN: Ссылка
Es gibt keine ROW_NUMBER
in SQL Server, nur Oracle. Verwenden Sie:
Wo primary key
die Primärschlüsselspalte Ihrer Tabelle ist.
Da es sich um einen Primärschlüssel handelt, ist sein Index bereits indiziert, sodass SQL ihn zählen kann, ohne die gesamte Tabelle zu durchsuchen (er verwendet einen Clustered-Index, der viel schneller ist als ein vollständiger Tabellenscan) )
Sie könnten auch sys.indexes
schema verwenden, aber es ist nicht korrekt, und Sie benötigen Zugriffsrechte für Datenbankadministratoren, und der Benutzer Ihrer Anwendungsdatenbank soll keine Berechtigungen in diesem Schema haben
Ich glaube nicht, dass du das meinst, aber ich werde es versuchen:
%Vor%Tags und Links sql-server-2008