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:
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







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
Respuesta Responder a este mensaje
#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

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


.

Respuesta Responder a este mensaje
#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

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


.

Respuesta Responder a este mensaje
#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%
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

>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
>
>
>.
>







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
Respuesta Responder a este mensaje
#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:
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:
> 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
>
>



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


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida