Determinar el nº de registros por tabla

02/05/2007 - 17:24 por ::romovi:: | Informe spam
Hola Grupo!
Me parece que hace un tiempo atrás usé un procedimiento almacenado de
Sistema para determinar el número de registros por cada tabla de una
base de datos. El problema es que no recuerdo que procedimiento usé.

¿Alguien conoce un método o proc. de sistema que me devuelva lo que busco?

Desde ya muchas Gracias.

Preguntas similare

Leer las respuestas

#6 ::romovi::
04/05/2007 - 16:58 | Informe spam
Muchas Gracias Alejandro, muy interesante lo que planteas.


Alejandro Mesa escribió:
- Puedes usar el procedimineto no documentado de Microsoft sp_foreachtable
(esto no se recomienda ser usado en codigo que sera puesto en produccion).

create table #t (table_name nvarchar(265), cnt bigint)

insert into #t
exec sp_msforeachtable 'select ''?'' as table_name, count(*) as cnt from ?'

select *
from #t
order by table_name

drop table #t
go

- Tambien puedes crear un cursor para navegar por cada tabla que tengas y
contar las filas.

create table #t (table_name nvarchar(265), cnt bigint)

declare @sql nvarchar(4000)
declare @ts sysname
declare @tn sysname
declare c cursor local fast_forward
for
select
TABLE_SCHEMA, TABLE_NAME
from
INFORMATION_SCHEMA.TABLES
where
objectproperty(object_id('[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']'),
'IsMSShipped') = 0
and objectproperty(object_id('[' + TABLE_SCHEMA + '].[' + TABLE_NAME +
']'), 'IsUserTable') = 1

open c

while 1 = 1
begin
fetch next from c into @ts, @tn

if @@error != 0 or @@fetch_status != 0 break

set @sql = N'select ''[' + @ts + N'].[' + @tn + N']'', count(*) from ['
+ @ts + N'].[' + @tn + N']'

insert into #t
execute sp_executesql @sql
end

close c
deallocate c

select *
from #t
order by table_name

drop table #t
go

Debes tener mucho cuidado con cualquier opcion que escojas puesto que ambas
opciones cuentan el # de filas y si tus tablas son grandes, esto puede tomar
tiempo.


AMB


"::romovi::" wrote:


Hola Grupo!
Me parece que hace un tiempo atrás usé un procedimiento almacenado de
Sistema para determinar el número de registros por cada tabla de una
base de datos. El problema es que no recuerdo que procedimiento usé.

¿Alguien conoce un método o proc. de sistema que me devuelva lo que busco?

Desde ya muchas Gracias.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida