O valor armazenado nos metadados não é garantido como correto.
DBCC UPDATEUSAGE
pode ser usado para corrigir isso quando isso acontecer (menos provável desde o SQL Server 2000) Também não é transacionalmente consistente. Você pode ler um valor de contagem atualizado por uma transação não confirmada.
E é possível que esses valores sejam atualizados manualmente também.
CREATE TABLE dbo.YourTable(X INT)
UPDATE STATISTICS dbo.YourTable WITH ROWCOUNT = 1000000
SELECT sum(p.rows) eRowCount
FROM sys.partitions p
WHERE P.object_id =object_id('dbo.YourTable') AND p.index_id < 2