Total de registros por tabela
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
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
Fabiano_monteiro
Curtidas 0
Respostas
Marcus.magalhaes
12/07/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,
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,
GOSTEI 0
Fabiano_monteiro
12/07/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
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
GOSTEI 0
Marcus.magalhaes
12/07/2004
por nada...sempre q precisar.
[]´s
[]´s
GOSTEI 0