SQL Server - triggers o funciones

 
Vista:
sin imagen de perfil

triggers o funciones

Publicado por apis (26 intervenciones) el 13/03/2008 23:50:58
Hi! queria saber que seria mejor utilizar para hacer esto:
Es la tabla de ventas y detalle de ventas y quiero saber cual es la forma mas eficiente de calcular el subtotal de la venta.
Se me ocurrio con triggers en el detalle de ventas, en el after insert que cada vez que inserto un articulo en el detalle de ventas agregar el precio de ese articulo en el subtotal de la venta, pero luego se me complica pensar en la logica la hora de hacer updates, por ejemplo si hago un update de la tabla de detalles de ventas donde aumente el precio a varios articulos con un solo update como hacerle para que sume los precios y los agrupe para la venta que corresponda.
Con el delete pues pasaria algo parecido como hacer para que primero sume todos los articulos del detalle de ventas y luego lo reste a la venta correspondiente.
Luego pense que talvez esa lógica la deberia poner en mi aplicacion y no en la base de datos y asi no podrian borrar articulos de mas de una venta ya que la aplicación no lo permitiria, que igual y si la aplicacion no lo permite pues podria dejar la logica en triggers.
Tambien se me ocurrio crear una funcion y ponerla en el campo de precio del detalle de ventas asi cada vez que se actualice que actualice el precio en la tabla de ventas pasandole como parametro el id de la venta.
Ahora mi duda es cual de las ideas seria la mejor en cuanto a rapidez y eficiencia o para evitar cosas inecesarias. O hay alguna manera que sea mejor para hacer lo que quiero.
Gracias por leer el mensaje y agradecere sus respuestas
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

RE:triggers o funciones

Publicado por Isaias (3308 intervenciones) el 14/03/2008 02:16:10
Considere el problema que tendria si por alguna razon el subtotal de la venta no se actualizara.

Siempre es mejor ir y hacer una suma de los subtotales, en base a los detalles.
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:triggers o funciones

Publicado por apis (26 intervenciones) el 14/03/2008 17:01:48
tambien se me ocurrio hacer algo asi, de que siempre haga la suma en base a los detalles y talvez con eso me evitaria varios problemas, pero se me hacia que eran calculos de mas ya que en realidad nada mas se modificaria un dato, pero tomare en cuenta tu idea y mejor cada vez que haya un update, delete o insert que primero obtenga la suma de los detalles y luego pasarlo a la venta, mi duda era mas en si debia ponerlo en la aplicacion en un trigger, una funcion o un stored procedure. y creo que lo mejor es trigger con la opcion que mencionas muchas gracias a los 2 por su ayuda =)
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:triggers o funciones

Publicado por yosue (1 intervención) el 07/04/2009 17:44:37
hola a todos quisiera que alguien me ayude como crear un trigger para la tabla compra y detalle de compra y que al mismo tiempo el stock de los productos se actualizen. es decir se incrementen... gracias ante cualquier ayuda
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:triggers o funciones

Publicado por Verónica (3 intervenciones) el 14/03/2008 15:33:00
Creo que la mejor manera de hacerlo es en el triggers de detalle de venta, sería mas rápido el cálculo porque estaría a nivel de la base de datos. En cambio si lo pones en tu aplicativo, siempre que hagas una modificación tendrías que suspender al usuario lo cual retrasaría la digitación de la data.
(Siempre que insertes actualiza la columna - ti_detalle_ventas)

Espero te sea de mucha utilidad.
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