Array
(
)

Total de registros por tabela

Fabiano_monteiro
   - 12 jul 2004

Prezados Amigos,

Tudo bem?

Estou tentando fazer o seguinte: Tenho uma base com várias tabelas e gostaria de ter uma listagem de todas as tabelas com a quantidade de registros de cada uma.

Tentei fazer um fetch com a instrução:

select * from sysobjects where xtype=´u´ order by name me retornando assim todas as tabelas de usuários.

Tentei com isso um fetch mas quando joguei o nome da tabela numa variavel me surpreendi pois o SQL nao fez a substituição do valor da variável acusando erro.
Conhecem alguma procedure ou outra forma de se fazer isso. Segue abaixo o código (que nao terminei) que usei para chegar a conclusao acima:

declare@fetch_name varchar(150)
declarecursor_tabelas cursor for select name
fromsysobjects
wherextype=´u´
order by name
open cursor_tabelas

fetch next from cursor_tabelas
into @fetch_name

while @@fetch_status = 0
begin
selectcount(*)
from@fetch_name

fetch next from cursor_tabelas
into @fetch_name
end

close cursor_tabelas
deallocate cursor_tabelas

Marcus.magalhaes
   - 12 jul 2004

Fabiano, boa tarde.

Vc pode usar este comando :

Select so.name, si.rows
From sysobjects so Inner Join sysindexes si On so.id = si.id
Where si.indid in (0, 1)
And so.type = ´U´

indid = 0 serve para quando a tabela não tem PK
indid = 1 serve para quando tem PK.

Att,

Fabiano_monteiro
   - 12 jul 2004

Prezado Marcus

Muito obrigado.

Estou tentando aprender mais SQL Server a fundo e vou estudar e aprender o que me passou.

Testei e funcionou perfeitamente.

Obrigado.

Abraços

Marcus.magalhaes
   - 12 jul 2004

por nada...sempre q precisar.

[]´s