insercion por cada registro de una select

02/11/2004 - 12:24 por Oterox | Informe spam
Hola a todos.

Tengo un select * from tabla where id=1 y quiero que por cada registro q me
devuelva esa select hacer una insercion en otra tabla.Como podria hacer eso?

Gracias.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
02/11/2004 - 12:50 | Informe spam
Pues con los pocos datos que nos proporcionas, una posibilidad sería con
un INSERT ... SELECT. Por ejemplo:

INSERT tablaDestino (campo1, campo2, ... campoN)
SELECT * FROM tablaOrigen WHERE id=1


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Oterox" escribió en el mensaje
news:
Hola a todos.

Tengo un select * from tabla where id=1 y quiero que por cada registro q


me
devuelva esa select hacer una insercion en otra tabla.Como podria hacer


eso?

Gracias.


Respuesta Responder a este mensaje
#2 Oterox
02/11/2004 - 12:55 | Informe spam
Ya lo he resuelto:

declare @ped_id varchar(50), @art_id varchar(50), @pedart_cantidad
varchar(50)

DECLARE art_cursor CURSOR FOR

SELECT ped_id,art_id,pedart_cantidad FROM TBL_PEDIDOS_ARTICULOS WHERE
ped_id=2

OPEN art_cursor



FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad



WHILE @@FETCH_STATUS = 0

BEGIN

print @ped_id + '-' + @art_id + '-' + @pedart_cantidad


FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad

END

CLOSE art_cursor

DEALLOCATE art_cursor

"Oterox" wrote in message
news:
Hola a todos.

Tengo un select * from tabla where id=1 y quiero que por cada registro q


me
devuelva esa select hacer una insercion en otra tabla.Como podria hacer


eso?

Gracias.


Respuesta Responder a este mensaje
#3 Carlos Sacristan
02/11/2004 - 13:18 | Informe spam
No, la opción que has encontrado no es la mejor solución (en la mayoría
de los casos, un cursor no es la mejor opción). Indícanos qué necesitas
hacer, porque lo más probable es que lo único que necesites sea la sentencia
INSERT ... SELECT que te comenté


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Oterox" escribió en el mensaje
news:
Ya lo he resuelto:

declare @ped_id varchar(50), @art_id varchar(50), @pedart_cantidad
varchar(50)

DECLARE art_cursor CURSOR FOR

SELECT ped_id,art_id,pedart_cantidad FROM TBL_PEDIDOS_ARTICULOS WHERE
ped_id=2

OPEN art_cursor



FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad



WHILE @@FETCH_STATUS = 0

BEGIN

print @ped_id + '-' + @art_id + '-' + @pedart_cantidad


FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad

END

CLOSE art_cursor

DEALLOCATE art_cursor

"Oterox" wrote in message
news:
> Hola a todos.
>
> Tengo un select * from tabla where id=1 y quiero que por cada registro q
me
> devuelva esa select hacer una insercion en otra tabla.Como podria hacer
eso?
>
> Gracias.
>
>


Respuesta Responder a este mensaje
#4 Salvador Ramos
02/11/2004 - 13:18 | Informe spam
Hola:

La solución que te indica Carlos es mucho más eficiente y además escribirás
mucho menos código.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Oterox" escribió en el mensaje
news:
Ya lo he resuelto:

declare @ped_id varchar(50), @art_id varchar(50), @pedart_cantidad
varchar(50)

DECLARE art_cursor CURSOR FOR

SELECT ped_id,art_id,pedart_cantidad FROM TBL_PEDIDOS_ARTICULOS WHERE
ped_id=2

OPEN art_cursor



FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad



WHILE @@FETCH_STATUS = 0

BEGIN

print @ped_id + '-' + @art_id + '-' + @pedart_cantidad


FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad

END

CLOSE art_cursor

DEALLOCATE art_cursor

"Oterox" wrote in message
news:
Hola a todos.

Tengo un select * from tabla where id=1 y quiero que por cada registro q


me
devuelva esa select hacer una insercion en otra tabla.Como podria hacer


eso?

Gracias.






Respuesta Responder a este mensaje
#5 Oterox
02/11/2004 - 13:28 | Informe spam
tengo q insertar en una tabla de pedidos todos los articulos de un pedido
para cada consignatario(destinatario) es decir:

si para el pedido 1 hay 2 articulos en TBL_PEDIDOS_ARTICULOS:
id_pedido | id_articulo | nombre | cantidad
1 1 articulo1 10
1 2 articulo2 200
y hay 2 consignatarios en TBL_PEDIDOS_CONSIGNATARIOS:
id_pedido | id_consignatario
1 1
1 2
Deberian hacerse estas inserciones en TBL_PEDIDOS_ARTICULOS_CONSIGNATARIOS:
id_pedido | id_articulo | id_consignatario | nombre | cantidad
1 1 1 articulo1 10
1 2 1 articulo2 200
1 1 2 articulo1 10
1 2 2 articulo2 200


"Carlos Sacristan" <csacristan ARROBA mvps.org> wrote in message
news:%
No, la opción que has encontrado no es la mejor solución (en la


mayoría
de los casos, un cursor no es la mejor opción). Indícanos qué necesitas
hacer, porque lo más probable es que lo único que necesites sea la


sentencia
INSERT ... SELECT que te comenté


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Oterox" escribió en el mensaje
news:
> Ya lo he resuelto:
>
> declare @ped_id varchar(50), @art_id varchar(50), @pedart_cantidad
> varchar(50)
>
> DECLARE art_cursor CURSOR FOR
>
> SELECT ped_id,art_id,pedart_cantidad FROM TBL_PEDIDOS_ARTICULOS WHERE
> ped_id=2
>
> OPEN art_cursor
>
>
>
> FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad
>
>
>
> WHILE @@FETCH_STATUS = 0
>
> BEGIN
>
> print @ped_id + '-' + @art_id + '-' + @pedart_cantidad
>
>
> FETCH NEXT FROM art_cursor into @ped_id, @art_id, @pedart_cantidad
>
> END
>
> CLOSE art_cursor
>
> DEALLOCATE art_cursor
>
> "Oterox" wrote in message
> news:
> > Hola a todos.
> >
> > Tengo un select * from tabla where id=1 y quiero que por cada registro


q
> me
> > devuelva esa select hacer una insercion en otra tabla.Como podria


hacer
> eso?
> >
> > Gracias.
> >
> >
>
>


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