Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

conocer el total de regirtros en sql

Estas en el tema de conocer el total de regirtros en sql en el foro de Bases de Datos General en Foros del Web. Hola que tal... ¿Como saber el total de registros de una tabla incluso los que se hayan eliminado? En mi tabla el campo llave es ...
  #1 (permalink)  
Antiguo 21/07/2003, 08:53
 
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 3 meses
Puntos: 0
Pregunta conocer el total de regirtros en sql

Hola que tal...

¿Como saber el total de registros de una tabla incluso los que se hayan eliminado?

En mi tabla el campo llave es un int que se incrementa.

Saludos

JC
  #2 (permalink)  
Antiguo 21/07/2003, 10:42
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola jcao29.

No se si te comprendo bien, pero para saber el total de registros de una tabla basta con hacer un "select count(*) from nombreDeTabla". Sin embargo, los registros eliminados olvídalos, debes llevar tu cuenta aparte en todo caso o implementar una especie de marca lógica.

Saludos.
  #3 (permalink)  
Antiguo 21/07/2003, 12:16
 
Fecha de Ingreso: enero-2002
Mensajes: 70
Antigüedad: 22 años, 3 meses
Puntos: 0
ok,

Tengo mi tabla y mi campo ID es autoincrement, lo que yo quiero saber es cual seria el siguiente numero antes de insertarlo...

porque asi yo le muestro al usuario cual es el id que va agregar...

Saludos y gracias...

JC
  #4 (permalink)  
Antiguo 21/07/2003, 15:19
 
Fecha de Ingreso: julio-2003
Mensajes: 141
Antigüedad: 20 años, 9 meses
Puntos: 5
Hola!!

A ver segun he entendido, tienes un ID autoincrementable, y lo que deseas es sacar el ultimo ID, para sumarle uno y decirle al usuario cual sera el siguiente ID a insertar ...

SELECT max(Id)
FROM nombre_de_tu tabla;

Esto te sacara el maximo valor almacenado en el campo Id, el problema que tiene es que, cuando llames a la consulta, si se ha eliminado el ultimo Id insertado, entonces el dato sera incorrecto. Creo que me he explicado ...

Para solventar esto tendras que mantener alguna referencia a los borrados, por ejemplo puedes crearte una tabla con una sola columna donde vayas almacenando los Id que vas borrando, por lo que la nueva consulta te quedara ...

SELECT max(Id)
FROM nombre_de_tu_tabla, tabla_de_los_Id_borrados;

Es lo primero que se me ha ocurrido, espero te sirva ...

Saludos !!!
  #5 (permalink)  
Antiguo 21/07/2003, 16:55
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Otro problema con el que te vas a enfrentar, es cuando tengas que mostrarle ese número a dos usuarios simultaneamente, ya que realmente uno solo de ellos va a tomar el siguiente valor, pero mientras ninguno de los dos guarde, ambos verán el mismo "número candidato".

Saludos.
  #6 (permalink)  
Antiguo 23/07/2003, 14:50
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 23 años, 10 meses
Puntos: 0
Yo lo solucione de otro modo, tienes que crear el registro inicial aunque sea con datos en blanco con un

dim idregistro
set rs = Server.CreateObject("ADODB.RecordSet")
rs.addnew
rs.fields("Campo1")=Valor1
....
rs.update
idregistro=rs.field("IdTabla")

esta es la idea de lo que haces, asi puedes separar el numero que vas a usar y tanto tu aplicacion sabra que registro es donde va a guardar los datos, como podras mostrarle al usuario en pantalla el id de transaccion que le estas asignado con tu campo autoincremental.
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:03.