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

Campo autonumerico que se ajuste a numeración original

Estas en el tema de Campo autonumerico que se ajuste a numeración original en el foro de SQL Server en Foros del Web. Hola maestros como puedo hacer para que el campo autonumerico de una tabla, vuelva a la numeracion original, porque cuando elimino un registro por ejemplo ...
  #1 (permalink)  
Antiguo 19/03/2010, 07:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Campo autonumerico que se ajuste a numeración original

Hola maestros

como puedo hacer para que el campo autonumerico de una tabla, vuelva a la numeracion original, porque cuando elimino un registro por ejemplo el registro numero 1, el que queda con posicion primera es el registro con numeración 2, como hago para que vuelvan o se autoajuste la numeración comenzando de 1.

por favor.
  #2 (permalink)  
Antiguo 19/03/2010, 09:41
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Campo autonumerico que se ajuste a numeración original

Cita:
Iniciado por kinetic_brain Ver Mensaje
Hola maestros

como puedo hacer para que el campo autonumerico de una tabla, vuelva a la numeracion original, porque cuando elimino un registro por ejemplo el registro numero 1, el que queda con posicion primera es el registro con numeración 2, como hago para que vuelvan o se autoajuste la numeración comenzando de 1.

por favor.
Hola
casi siempre cuando creo una tabla la acentuo asi
Código SQL:
Ver original
  1. CREATE TABLE myTabla
  2.    (
  3.    idcal INT IDENTITY(1,1),
  4.    nombre VARCHAR(20)
  5.    )

entenderas que aca creas tu IDx con un valor inicial de 1 y su incremento de 1 utilizando el IDENTITY. Pero existe una desventaja que cundo insertamos y eliminamos registros, crea vacios en nuestro correlativo o peor aun cuando aplicamos un INSERT y este nos da error el IDENTITY por el error se incremento otra vez el ID.
Para este caso de resetar o reestructurar el valor del ID, se utiliza el sgte codigo
solo se pone nombre de tabla ya que una propiedad del IDENTITY es que solo puede haber en una, por eso en el comando solo se pone tabla y valor a resetear y nunca nombre del campo.
Código SQL:
Ver original
  1. SET DBCC CHECKIDENT ('myTabla', RESEED, 370);
despues que insert un registro nuevo en esta tabla el valor devuelto para el ID del registro insertado es 371 eso quiere decir si quieres iniciar un registro en 1 deberias poner SET DBCC CHECKIDENT ('calendario', RESEED, -1);
Espero halla quedado claro esta explicacion.

www.bitxense.com.pe | Soluciones Informaticas S.A.C. - [email protected]
Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo [email protected] Lima-Peru
  #3 (permalink)  
Antiguo 19/03/2010, 12:07
 
Fecha de Ingreso: agosto-2009
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Campo autonumerico que se ajuste a numeración original

Muchas gracias T3rryMan

SET DBCC CHECKIDENT ('MiTabla', RESEED, -1);

consulta DBCC es mi base de datos? o un comando? disculpa mi ignorancia.

El 370 es la cantidad de registros que hay en la tabla y a esa cantidad de registros se formatearan?

en mi caso por ejemplo la base solo posee 10 registros y simpre deben existir esos 10 registros osea de 1 al 10 en el campo fila ya que la consulta toma del 1 al 10 y los posiciona en una tabla en flash.

entonces si elimino el registro 1 que tiene en el campo "fila" 1, el campo siguiente se reordenaria y pasaria a ser el registro 1, no se si me explico y deberia hacer lo siguiente

SET DBCC CHECKIDENT ('MiTabla', RESEED, 10) ?
  #4 (permalink)  
Antiguo 19/03/2010, 20:59
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Campo autonumerico que se ajuste a numeración original

Cita:
Iniciado por kinetic_brain Ver Mensaje
Muchas gracias T3rryMan

SET DBCC CHECKIDENT ('MiTabla', RESEED, -1);

consulta DBCC es mi base de datos? o un comando? disculpa mi ignorancia.

El 370 es la cantidad de registros que hay en la tabla y a esa cantidad de registros se formatearan?

en mi caso por ejemplo la base solo posee 10 registros y simpre deben existir esos 10 registros osea de 1 al 10 en el campo fila ya que la consulta toma del 1 al 10 y los posiciona en una tabla en flash.

entonces si elimino el registro 1 que tiene en el campo "fila" 1, el campo siguiente se reordenaria y pasaria a ser el registro 1, no se si me explico y deberia hacer lo siguiente

SET DBCC CHECKIDENT ('MiTabla', RESEED, 10) ?
Hola
Verdad me falto detallar

SET - comando alteran informacion especifica por parte de la sesion actual
DBCC - comando de consola de la base datos
DBCC CHECKIDENT - comando de consola que comprueba el valor de identidad actual de la tabla especificada y, si fuera necesario, corrige el valor de identidad.

Sintaxis

Código SQL:
Ver original
  1. DBCC CHECKIDENT
  2.     ( 'table_name'
  3.         [ , { NORESEED | RESEED }  ]
  4.         [ , new_reseed_value ]  
  5.     )

Un ejemplo

Código SQL:
Ver original
  1. USE myData
  2. GO
  3. SET DBCC CHECKIDENT('MiTabla', RESEED, 78)
  4. GO
  5. INSERT INTO MiTabla(otrocampo) VALUES('otrovalor')
  6. GO
  7. SELECT * FROM 'MiTabla'

Aqui me muestran varios registros pero el ultimo valor del campo identidad me muestra el 79 eso quiere decir que si ingresase en vez de 78 el 103 e insertase despues el identidad insertado seria 104. en mi insert asumo que solo existen 2 campos en mi tabla uno identity el cual no permite insertarle valor.

Con un Campo identity no puede repetirse un valor ni los valores toman alguno como efecto de reordenamiento. eso no existe o no lo he visto
por eso que utilizo el comando mencionado verifico que no traiga problemas despues por eso siempre pongo un valor en donde esta el registro identity mayor o ultimo que exista actualmente.

www.bitxense.com.pe | Soluciones Informaticas S.A.C. - [email protected]
Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo MSN [email protected] Lima-Peru

Etiquetas: original, campos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:27.