Foros del Web » Programando para Internet » ASP Clásico »

¿Como hacer un insert into con un campo incremental numerico ?

Estas en el tema de ¿Como hacer un insert into con un campo incremental numerico ? en el foro de ASP Clásico en Foros del Web. Holas tengo la siguiente tabla la pregunta es ¿Como hacer un insertar un nuevo registro que tome como valor exactamente el siguiente numero despues de ...
  #1 (permalink)  
Antiguo 03/03/2008, 17:06
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 19 años, 7 meses
Puntos: 2
¿Como hacer un insert into con un campo incremental numerico ?

Holas

tengo la siguiente tabla



la pregunta es

¿Como hacer un insertar un nuevo registro que tome como valor exactamente el siguiente numero despues de ultimo ? .. esto siempre lo había manejado con autonumericos pero ahora se me presentó esta necesidad y tengo que hacer los incrementos manualmente.

¿como luciría el código sugestivamente ?

gracias !!
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #2 (permalink)  
Antiguo 03/03/2008, 17:45
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: ¿Como hacer un insert into con un campo incremental numerico ?

Pero si son incrementos de uno en uno ¿Por qué los tienes que hacer tu? digo, no da lo mismo dejárselo al motor de base de datos? Si esto es algo que se tiene que hacer sí o sí, yo te sugeriría hacerlo en una función de SQL, ya que estás utilizando este manejador:

Código:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName> 
(
)
RETURNS INT
AS
BEGIN
	DECLARE @maxvalue int;

	SELECT @maxvalue = ISNULL(MAX(campo_id)+1 , 1) FROM tabla;

	RETURN @maxvalue;
END
GO
Pero la recomendacion es no hacerlo.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 04/03/2008, 08:09
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: ¿Como hacer un insert into con un campo incremental numerico ?

sip creo que la pregunta es: webbeginner porque tienes que hacerlo si la base lo hace???

cuando haces un insert into de un autoincremental se hace sin problema no se toma en cuenta para el insert

Cita:
insert into tutabla (campo2,campo3) values ('strValor1','strValor2')
sin contar con el valor que te regrese el autoincremental.


suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #4 (permalink)  
Antiguo 04/03/2008, 12:24
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 19 años, 7 meses
Puntos: 2
Re: ¿Como hacer un insert into con un campo incremental numerico ?

Cita:
Iniciado por u_goldman Ver Mensaje
Pero si son incrementos de uno en uno ¿Por qué los tienes que hacer tu? digo, no da lo mismo dejárselo al motor de base de datos? Si esto es algo que se tiene que hacer sí o sí, yo te sugeriría hacerlo en una función de SQL, ya que estás utilizando este manejador:
Gracias por la sugerencia, pero digamos que debe ser del lado de la programación esta lógica porque es posible que esta aplicación tmb la haga para access.


Cita:
Iniciado por JuanRAPerez Ver Mensaje
sip creo que la pregunta es: webbeginner porque tienes que hacerlo si la base lo hace???

cuando haces un insert into de un autoincremental se hace sin problema no se toma en cuenta para el insert



sin contar con el valor que te regrese el autoincremental.
Hola Juan

Es que necesito ver la logica de hacerlo como lo menciono, es porque si lo uso como un autonumerico va a crecer de uno en uno pero progresivamente es decir de cero a "n" y yo necesito ver como hacerlo de esta forma porque mi campo llave3 incrementa dependiendo de llave2, de tal forma que cuando llegue un 3 a la tabla debo comenzar en uno otra vez, observa la tabla y veras la lógica


gracias
,
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #5 (permalink)  
Antiguo 04/03/2008, 12:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: ¿Como hacer un insert into con un campo incremental numerico ?

Hola de nuevo webbeginer, a primera vista me parece que te estás complicando demasiado para algo que quizás no necesite tanta complicación, ahora contestando a la pregunta, la lógica es la misma que la función de SQL, solamente necesitas crear un recordset que te devuelva el máximo número para un registro dado, si no existe, el valor es 1, si existe, le sumas 1 y devuelves, además de revisar las reglas específicas de tu aplicación.

Código:
SELECT TOP 1 campoid FROM tabla ORDER BY campoid DESC [WHERE condiciones]
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 04/03/2008, 13:11
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 19 años, 7 meses
Puntos: 2
Re: ¿Como hacer un insert into con un campo incremental numerico ?

Cita:
Iniciado por u_goldman Ver Mensaje
Hola de nuevo webbeginer, a primera vista me parece que te estás complicando demasiado para algo que quizás no necesite tanta complicación, ahora contestando a la pregunta, la lógica es la misma que la función de SQL, solamente necesitas crear un recordset que te devuelva el máximo número para un registro dado, si no existe, el valor es 1, si existe, le sumas 1 y devuelves, además de revisar las reglas específicas de tu aplicación.

Código:
SELECT TOP 1 campoid FROM tabla ORDER BY campoid DESC [WHERE condiciones]
Saludos
Hola U_goldman !

Precisamente lo estoy haciendo de una manera parecida a lo que propones y ya me esta funcionando bien aparentemente

utilicé así

Código:
SELECT MAX(llave3) AS id_last
FROM   Homoclave
WHERE     (llave1 = "mi variable") AND (llave = "mi variable")

y el valor que obtengo lo meto a una variable y hago todo el show con otro insert para la logica q necesito.

Caso resuelto

Gracias por su ayuda !!
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #7 (permalink)  
Antiguo 04/03/2008, 15:37
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: ¿Como hacer un insert into con un campo incremental numerico ?

Cita:
Gracias por la sugerencia, pero digamos que debe ser del lado de la programación esta lógica porque es posible que esta aplicación tmb la haga para access.
Perdón pero ..... Access también maneja campos autonuméricos, al igual que SQL Server los campos identidad.

Digo, por si después de todo decides que como te han dicho hacer eso no es necesario

Saludos
  #8 (permalink)  
Antiguo 05/03/2008, 14:46
 
Fecha de Ingreso: febrero-2008
Ubicación: Mexicali, BC. Mexico
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: ¿Como hacer un insert into con un campo incremental numerico ?

jajajaja bueno yo no mas no pude participar en la respuesta pero si quieren algo que no tenga ni llaves ni autonumericos es el manejar del infierno PervasiveSQL que actualmente lo utilizo yo en un sistema.... lo odio es lo peor ... no usen Pervasive por favor....

Soy un programamdor frustrado por eso .... jajajaja .... bueno que bueno que soluciono lo de las llaves.
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:42.