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

#1 Maxi
02/05/2007 - 18:23 | Informe spam
Hola, que version de sql usas?


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"::romovi::" escribió en el mensaje
news:%
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.
Respuesta Responder a este mensaje
#2 ::romovi::
02/05/2007 - 19:32 | Informe spam
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Maxi escribi&oacute;:
<blockquote cite="mid:" type="cite">
<pre wrap="">Hola, que version de sql usas?

</pre>
</blockquote>
Esta:<br>
<font color="#000099">Microsoft SQL Server&nbsp; 2000 - 8.00.760 (Intel
X86)&nbsp;&nbsp; Dec 17 2002 14:22:05&nbsp;&nbsp; <br>
Copyright (c) 1988-2003 Microsoft Corporation&nbsp; <br>
Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 2) <br>
<br>
<br>
</font>
</body>
</html>
Respuesta Responder a este mensaje
#3 Javier Loria
02/05/2007 - 21:17 | Informe spam
Hola:
Una nota sobre usar sysindexes.
En SQL 2000 la información en sysindexes NO necesariamente es exacta, es
un estimado.
Si quieres que sea mas precisa debes ejecutar DBCC UPDATEUSAGE para
actualizar y corregir los valores en sysindexes.
Si estimados son suficientes, no te preocupes y usa sysindexes
directamente.
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Maxi" wrote in message
news:
ok, proba esta query

select sum(rows) from sysindexes
where indid<2 and id in (select id from sysobjects where xtype='u')



Salu2

Microsoft MVP SQL Server
Culminis Speaker

"::romovi::" escribió en el mensaje
news:OvFdu$
Maxi escribió:
Hola, que version de sql usas?


Esta:
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation
Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 2)
Respuesta Responder a este mensaje
#4 Alejandro Mesa
03/05/2007 - 15:23 | Informe spam
- 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.

Respuesta Responder a este mensaje
#5 ::romovi::
04/05/2007 - 16:52 | Informe spam
Javier Loria escribió:
Hola:
Una nota sobre usar sysindexes.
En SQL 2000 la información en sysindexes NO necesariamente es
exacta, es un estimado.
Si quieres que sea mas precisa debes ejecutar DBCC UPDATEUSAGE para
actualizar y corregir los valores en sysindexes.
Si estimados son suficientes, no te preocupes y usa sysindexes
directamente.
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Maxi" wrote in message
news:
ok, proba esta query

select sum(rows) from sysindexes
where indid<2 and id in (select id from sysobjects where xtype='u')




OK,
Me ha servido de mucho su ayuda.

Gracias Maxi y Javier
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida