SQL - insert multiple

 
Vista:

insert multiple

Publicado por Joshua (18 intervenciones) el 10/06/2005 04:06:46
Hola a todos, disculpen la molestia de nuevo pero me podrian ayudar con una pequeña duda que tengo?? Miren tengo una tabla que recive varios valores al mismo tiempo, pero quisiera saber como puedo hacer eso en un SP, hay alguna forma de hacer esto?? Agradeceria su ayuda. GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:insert multiple

Publicado por Liliana (426 intervenciones) el 10/06/2005 13:17:40
Hola,
No sé si me queda claro lo que necesitás, pero tal vez sea algo así:

INSERT mitabla
SELECT dato1, dato2
FROM otratabla
WHERE dato1 = @variable

Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:insert multiple

Publicado por Joshua (18 intervenciones) el 11/06/2005 04:36:15
Nop, creo que no me explique bien, t pido una disculpa, pero imagina que necesito meter n valores a la tabla pero con un numero de registro distinto, o sea que yo inserte 2 datos en la tabla y luego inserte otros 2 pero en un registro distinto y asi, pero lo que me aturde es que necesito que sean casi, casi infinitos ya que no hay un numero especifico de articulos que se insertan, hay un minimo de uno pero no hay un maximo todo depende de los productos que se vendan

Espero haberme explicado bien, sino tendre que hacer algo t pido una disculpa por no haberme explicado bien.

Otra duda mira no se como hacer un SP para un DELETE y un UPDATE pero el caso es qeu el delete borra todo lo que cumpla con los parametros que le ponga, eso incluye mas de un registro y es mas rapido con el id pero me estan pidiendo que no debo mostrar la id de ningun registro y en segunda con el update como le digo que solo me actualize un dato, seria que fuera mas especifico a la hora de poner mis parametros?????

De antemano gracias
p.d. Gracias por el tip del contador me sirvio de mucho y gracias a ti demostre que si se podia hacer un contador en los procedures muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:insert multiple

Publicado por Leandro (7 intervenciones) el 11/06/2005 06:01:26
Sería bueno que explicaras cómo son las estructuras de las tablas y cómo van a entrar los datos.
Según lo que entendí, querés varios registros de tablas diferentes, lo que no sé es si querés que caigan en las mismas columnas o algún dato tiene que ir en otra específica.
Si es el primer caso, deberías usar un Union:

INSERT INTO Tabla_1(campo_1, campo2)
SELECT campo_1, campo_2
FROM Tabla_2
UNION ALL
SELECT campo_1, campo_2
FROM Tabla_3

No sé si será eso, por eso te pido que publiques la estructura.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:insert multiple

Publicado por Joshua (18 intervenciones) el 12/06/2005 00:39:06
Si mira la estructura de la tabla es:
id_detalle(PK)
id_producto(FK)
id_venta(FK)
cantidad

Entonces lo que yo quiero es que en esta tabla se inserten, n datos pero que se inserten en un nuevo registro

por ejemplo si compro 4 productos me haga 4 inserts en la misma tabla pero, el problema es que no importa cuantos productos se inserten asi como pueden ser 4 pueden ser 10 o 2 el caso es que puede ser 1 pero no tiene un limite.

Espero que con esto me puedan ayudar gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:insert multiple

Publicado por Liliana (426 intervenciones) el 13/06/2005 13:20:57
Hola Joshua,
¿De dónde salen los datos que vas a insertar en la tabla?
Si los ingresa un operador a través de una aplicación, deberás hacer un INSERT por cada fila.
En cambio si están en otra tabla o en más de una, deberás construir la instrucción seleccionando las columnas correspondientes, contanos bien cuál es el origen de los datos para ayudarte.

En cuanto a DELETE o UPDATE, si afecta a una o varias filas, dependerá de las condiciones:

DELETE FROM tabla
WHERE clave = 123 --- borrará solo una fila asumiendo que tenemos clave única

DELETE FROM tabla
WHERE codigo = 'XYZ' --- borrará todas las filas con este dato

Lo mismo para el UPDATE:
UPDATE tabla
SET dato = 'qwer'
WHERE dato = asdf' --- actualiza todas las filas que cumplan la condición

Si tu caso es actualizar o borrar filas según su clave, y es un conjunto de claves, lo más rápido es crear una tabla con ellas y combinarla con tu tabla original para realizar la operación.

DELETE from tabla
WHERE clave IN (SELECT clavenew FROM tablanew)

Espero que te sirva,
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:insert multiple

Publicado por Joshua (18 intervenciones) el 14/06/2005 05:36:32
Gracias, por la parte del update, pero crees que se pueda hacer para un SP al igual que un delete, y sino fuera molestia me podrias dar un ejemplo para que me guie es que no soy muy bueno en esos aspectos, por otro lado con respecto a la tabla, los datos yo los inserto desde una aplicacion ASP.NET que amteriormente ya esta lista para insertar los datos solo que falta ese minimo detalle que me esta dando mucha lata.

GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:insert multiple

Publicado por Liliana (426 intervenciones) el 14/06/2005 13:47:23
Hola,
No me queda claro lo que necesitás. Te mando un ejemplo de SP para INSERT, para UPDATE y uno para DELETE, muy básicos, asumiendo que es eso lo que estás buscando:

CREATE PROC prInsert (@clave smallint, @dato1 char(10), @dato2 datetime)
AS
INSERT tabla
SELECT @clave, @dato1, @dato2
GO
y para ejecutarlo:
EXEC prInsert 123, 'Prueba', '20050614'

CREATE PROC prUpdate (@clave smallint, @dato1 char(10), @dato2 datetime)
AS
UPDATE tabla
SET dato1 = @dato1, dato2 = @dato2
WHERE clave = @clave
GO
y para ejecutarlo:
EXEC prUpdate 123, 'Otra Mas', '20050715'

CREATE PROC prDelete (@clave smallint)
AS
DELETE FROM tabla
WHERE clave = @clave
GO
y para ejecutarlo:
EXEC prDelete 123

Como ves, cada SP recibe datos para una sola fila, porque me imagino que así trabajará la aplicación.
Espero que te sirva,
Liliana.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:insert multiple

Publicado por Joshua (18 intervenciones) el 14/06/2005 22:20:13
Muchas gracias por la otra parte no t preocupes, creo que hare un ciclo FOR dentro de mi sistema. Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar