ID AUTOMATICO CON UN INSERT

24/06/2004 - 19:33 por Jose Manuel Davila | Informe spam
que tal foro buen dia:

una pregunta aver su se puede

insert into tabla1(id, campo1, campo2)
select ("que me de el id maximo mas uno, para cada, fila insertada",
campo1, campo2
from tabla1
where campo1 = 1


osea :

que pueda consultar tabla1 si son 5 reg. el resultado,

que los pueda insertar en esa misma tabla pero al final y que el query me de
el consecurivo siguiente para pada registro.

no se si se pueda hacer esto



gracias

un saludos para todos

Preguntas similare

Leer las respuestas

#1 Maxi
24/06/2004 - 21:41 | Informe spam
Si se puede

Asi

Insert into tutabla (campos)

Select max(campoid)+1,@campo2,@campo3 from tabla

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jose Manuel Davila" escribió en el mensaje
news:
Mostrar la cita
de
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.707 / Virus Database: 463 - Release Date: 15/06/2004
#2 ulises
25/06/2004 - 00:36 | Informe spam
Dada tu tabla :

create table tabla ( serie int,
campo1 char(1),
campo2 char(1) )
insert into tabla values ( 1, 'A','X' )
insert into tabla values ( 2, 'B','Z' )
insert into tabla values ( 3, 'B','Z' )

con las sentencias :

declare @secuencia int
select @secuencia = isnull(max(serie),0) from tabla
insert into tabla
select serie + @secuencia, campo1, campo2 from tabla

obtienes :

serie campo1 campo2
1 A X
2 B Z
3 B Z
4 A X
5 B Z
6 B Z

(6 row(s) affected)

¿es eso lo que buscas?

Saludos,
Ulises

Mostrar la cita
fila insertada",
Mostrar la cita
que el query me de
Mostrar la cita
#3 Jose Manuel Davila
25/06/2004 - 17:31 | Informe spam
que va ulises funciona y bien, pero aqui cual es la expli. logica, no me
quiero quedar ocn que si lo hace sino como lo hace.

han de pensar que es mucho pero prefiero tener bien entendido, antes de
aplicarlo

gracias

saludos para todos

Jose Manuel Davila



"ulises" escribió en el mensaje
news:2133301c45a3b$a4c8f460$
Dada tu tabla :

create table tabla ( serie int,
campo1 char(1),
campo2 char(1) )
insert into tabla values ( 1, 'A','X' )
insert into tabla values ( 2, 'B','Z' )
insert into tabla values ( 3, 'B','Z' )

con las sentencias :

declare @secuencia int
select @secuencia = isnull(max(serie),0) from tabla
insert into tabla
select serie + @secuencia, campo1, campo2 from tabla

obtienes :

serie campo1 campo2
1 A X
2 B Z
3 B Z
4 A X
5 B Z
6 B Z

(6 row(s) affected)

¿es eso lo que buscas?

Saludos,
Ulises

Mostrar la cita
fila insertada",
Mostrar la cita
que el query me de
Mostrar la cita
#4 Maxi
25/06/2004 - 19:42 | Informe spam
Ulises, que pasaria si entre el Selecy y el Insert alguien mete un registro?
creo que no funcionaria tu codigo ;-)

Haz la prueba, por un Delay entre la asignacion de la variable y el insert y
veras lo que digo ;*)

lo mejor seria hacerlo dentro de una sola transaccion como es el Insert


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jose Manuel Davila" escribió en el mensaje
news:eCgl%
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.707 / Virus Database: 463 - Release Date: 15/06/2004
#5 Jose Manuel Davila
25/06/2004 - 21:27 | Informe spam
Maxi: Asi no Funciona, proque para el max necesitas un group by, au cuando
se lo pongas siempre te va a dar el mismo numero

saludos

"Maxi" escribió en el mensaje
news:
Mostrar la cita
me
Mostrar la cita
Ads by Google
Search Busqueda sugerida