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.

SQL
CREATE VIEW [dbo].[vwTableListRowCount]
AS
-- EXAMLE
-- SELECT * FROM vwTableListRowCount ORDER BY TableName
SELECT TOP 100 PERCENT O.name AS TableName,
s.name AS SchemaName,
I.rowcnt AS NrOfRecords
FROM sysobjects AS O
INNER JOIN sysindexes AS I ON O.id = I.id
INNER JOIN sys.schemas AS S ON O.uid = S.schema_id
WHERE I.indid IN (0, 1)
AND O.xtype = 'u'
AND O.[name] NOT IN ('sysdiagrams', 'dtproperties')
ORDER BY O.[name]

tableRowCount

SQL

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

Je e-mailadres wordt niet getoond. Een foto komt van Gravatar, als je die hebt.