Cómo contar la cantidad de registros

18/07/2006 - 09:07 por dot | Informe spam
Hola a todos,
si ejecuto esta consulta:

SELECT A.name 'NOMBRE DE LA TABLA'
FROM SYSOBJECTS AS A
WHERE A.xtype = 'U'
ORDER BY A.name

obtengo los nombres de las tablas de mi base de datos. Cómo puedo
saber, en la misma consulta, la cantidad de registros que tiene cada tabla?
Recuerdo haber leido en algún lado que a veces es más rápido acceder a
una de las columnas de las tablas del sistema que tiene la cantidad de
registro de cada tabla, pero no sé qué columna y tabla del sistema es.
Muchas gracias por vuestra ayuda.


Mauricio

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
18/07/2006 - 09:33 | Informe spam
Es el campo rows de la tabla sysindexes de la clave primaria de la tabla
sobre la que buscas.

En cualquier caso el contenido de este campo no está garantizado que sea
exacto, tú verás si lo necesitas o no.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"dot" <""mauricio(dot)nicastro\"@gmail(dot)com"> escribió en el mensaje
news:etb#
Hola a todos,
si ejecuto esta consulta:

SELECT A.name 'NOMBRE DE LA TABLA'
FROM SYSOBJECTS AS A
WHERE A.xtype = 'U'
ORDER BY A.name

obtengo los nombres de las tablas de mi base de datos. Cómo puedo
saber, en la misma consulta, la cantidad de registros que tiene cada


tabla?
Recuerdo haber leido en algún lado que a veces es más rápido acceder a
una de las columnas de las tablas del sistema que tiene la cantidad de
registro de cada tabla, pero no sé qué columna y tabla del sistema es.
Muchas gracias por vuestra ayuda.


Mauricio
Respuesta Responder a este mensaje
#2 dot
18/07/2006 - 10:19 | Informe spam
Muchas gracias, Carlos.
De esta manera, funciona. Ahora, solo por curiosidad, se te ocurre
alguna otra forma?
Saludos.

Mauricio
Copenhague, Dinamarca

Carlos Sacristán escribió:
Es el campo rows de la tabla sysindexes de la clave primaria de la tabla
sobre la que buscas.

En cualquier caso el contenido de este campo no está garantizado que sea
exacto, tú verás si lo necesitas o no.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"dot" <""mauricio(dot)nicastro\"@gmail(dot)com"> escribió en el mensaje
news:etb#
Hola a todos,
si ejecuto esta consulta:

SELECT A.name 'NOMBRE DE LA TABLA'
FROM SYSOBJECTS AS A
WHERE A.xtype = 'U'
ORDER BY A.name

obtengo los nombres de las tablas de mi base de datos. Cómo puedo
saber, en la misma consulta, la cantidad de registros que tiene cada


tabla?
Recuerdo haber leido en algún lado que a veces es más rápido acceder a
una de las columnas de las tablas del sistema que tiene la cantidad de
registro de cada tabla, pero no sé qué columna y tabla del sistema es.
Muchas gracias por vuestra ayuda.


Mauricio




Respuesta Responder a este mensaje
#3 Carlos Sacristán
18/07/2006 - 10:54 | Informe spam
Sí. Si quisiera saber el número de registros exactos de todas las tablas
de mi base de datos ejecutaría el siguiente script:

SELECT 'SELECT ''' + name + ''', COUNT(*) FROM ' + name
FROM sysobjects
WHERE TYPE = 'u'

Esta sentencia devuelve como resultado un listado del tipo

SELECT 'NombreTabla', COUNT(*) FROM NombreTabla
SELECT 'NombreTabla2', COUNT(*) FROM NombreTabla2

No tienes más que copiar ese resultado y ejecutarlo en otra ventana


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"dot" <""mauricio(dot)nicastro\"@gmail(dot)com"> escribió en el mensaje
news:#
Muchas gracias, Carlos.
De esta manera, funciona. Ahora, solo por curiosidad, se te ocurre
alguna otra forma?
Saludos.

Mauricio
Copenhague, Dinamarca

Carlos Sacristán escribió:
> Es el campo rows de la tabla sysindexes de la clave primaria de la


tabla
> sobre la que buscas.
>
> En cualquier caso el contenido de este campo no está garantizado que


sea
> exacto, tú verás si lo necesitas o no.
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "dot" <""mauricio(dot)nicastro\"@gmail(dot)com"> escribió en el mensaje
> news:etb#
>> Hola a todos,
>> si ejecuto esta consulta:
>>
>> SELECT A.name 'NOMBRE DE LA TABLA'
>> FROM SYSOBJECTS AS A
>> WHERE A.xtype = 'U'
>> ORDER BY A.name
>>
>> obtengo los nombres de las tablas de mi base de datos. Cómo puedo
>> saber, en la misma consulta, la cantidad de registros que tiene cada
> tabla?
>> Recuerdo haber leido en algún lado que a veces es más rápido acceder a
>> una de las columnas de las tablas del sistema que tiene la cantidad de
>> registro de cada tabla, pero no sé qué columna y tabla del sistema es.
>> Muchas gracias por vuestra ayuda.
>>
>>
>> Mauricio
>
>
Respuesta Responder a este mensaje
#4 dot
18/07/2006 - 11:14 | Informe spam
Ahhh, pero imagina que necesitas ejecutarlo en una sola sentencia SQL,
desde un programa realizado en VB u otro lenguaje. Por ahora, la
solución más práctica, aunque sé que no me asegura el valor correcto, es
usando la columna rows de sysindexes tal como me dijiste. Esta otra
solución también es interesante, solo que me obligaría a hacer algunos
pasos más.
Saludos.

Mauricio
Copenhague, Dinamarca


Carlos Sacristán escribió:
Sí. Si quisiera saber el número de registros exactos de todas las tablas
de mi base de datos ejecutaría el siguiente script:

SELECT 'SELECT ''' + name + ''', COUNT(*) FROM ' + name
FROM sysobjects
WHERE TYPE = 'u'

Esta sentencia devuelve como resultado un listado del tipo

SELECT 'NombreTabla', COUNT(*) FROM NombreTabla
SELECT 'NombreTabla2', COUNT(*) FROM NombreTabla2

No tienes más que copiar ese resultado y ejecutarlo en otra ventana


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Respuesta Responder a este mensaje
#5 Carlos Sacristán
18/07/2006 - 11:30 | Informe spam
Siempre puedes usar un cursor (una de las pocas situaciones en las que
es útil) y programarlo dentro de un procedimiento almacenado que te devuelva
los datos que necesitas.

De todos modos, entiendo que saber el número de registros de todas las
tablas de una base de datos suele ser una tarea de administración... ¿por
qué lo necesitas desde una aplicación cliente?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"dot" <""mauricio(dot)nicastro\"@gmail(dot)com"> escribió en el mensaje
news:#
Ahhh, pero imagina que necesitas ejecutarlo en una sola sentencia SQL,
desde un programa realizado en VB u otro lenguaje. Por ahora, la
solución más práctica, aunque sé que no me asegura el valor correcto, es
usando la columna rows de sysindexes tal como me dijiste. Esta otra
solución también es interesante, solo que me obligaría a hacer algunos
pasos más.
Saludos.

Mauricio
Copenhague, Dinamarca


Carlos Sacristán escribió:
> Sí. Si quisiera saber el número de registros exactos de todas las


tablas
> de mi base de datos ejecutaría el siguiente script:
>
> SELECT 'SELECT ''' + name + ''', COUNT(*) FROM ' + name
> FROM sysobjects
> WHERE TYPE = 'u'
>
> Esta sentencia devuelve como resultado un listado del tipo
>
> SELECT 'NombreTabla', COUNT(*) FROM NombreTabla
> SELECT 'NombreTabla2', COUNT(*) FROM NombreTabla2
>
> No tienes más que copiar ese resultado y ejecutarlo en otra ventana
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida