Dit script kun je als view gebruiken om het aantal rijen in alle SQL-tabellen in je database te tellen. Dat kan erg handig zijn.
CREATE VIEW [dbo].[vwTableListRowCount]AS-- EXAMLE-- SELECT * FROM vwTableListRowCount ORDER BY TableNameSELECT TOP 100 PERCENT O.name AS TableName, s.name AS SchemaName, I.rowcnt AS NrOfRecordsFROM sysobjects AS O INNER JOIN sysindexes AS I ON O.id = I.id INNER JOIN sys.schemas AS S ON O.uid = S.schema_idWHERE I.indid IN (0, 1) AND O.xtype = 'u' AND O.[name] NOT IN ('sysdiagrams', 'dtproperties')ORDER BY O.[name]Veelgestelde vragen
Hoe tel ik de rijen in alle tabellen van een SQL Server-database?
Maak een view zoals vwTableListRowCount. Die joint sysobjects, sysindexes en sys.schemas en geeft voor elke gebruikerstabel de tabelnaam, de schemanaam en het aantal records terug.
Welke systeemtabellen gebruikt de view voor het aantal rijen?
De view joint sysobjects, sysindexes en sys.schemas. Het aantal rijen komt uit de kolom rowcnt van sysindexes.
Waarom filtert het script op indid 0 en 1?
Het filter I.indid IN (0, 1) selecteert de heap of de clustered index van elke tabel. Zo krijg je één rij per tabel met zijn rowcnt.
Welke tabellen laat de view weg?
Hij geeft alleen gebruikerstabellen terug (xtype 'u'). Ook de tabellen sysdiagrams en dtproperties vallen af.
Hoe vraag ik de view vwTableListRowCount op?
Voer SELECT * FROM vwTableListRowCount ORDER BY TableName uit. Het resultaat toont TableName, SchemaName en NrOfRecords.

Reacties
Gerelateerde blogs
Ident-kolom resetten in een database
DateDiff berekenen met alleen weekdagen of werkdagen
Weken tussen twee datums berekenen met DateDiff