Columnas iguales en cabecera y detalle.

14/11/2005 - 08:32 por José Antonio | Informe spam
Por motivo de rendimiento en consultas estadisticas posteriores tengo en una
tabla cabecera y otra detalle de la misma, tres columnas repetidas, para que
puedan ser claves y los select estadisticos posteriores se ejecuten con
mayor rapided.

Tabla cabecera tiene las columans cliente,agente y fecha.
Tabla detalle tambien tiene estas tres columnas.

En un trigger de update para la tabla cabecera tengo el siguiente codigo
para que si una o varias de estas columnas cambian en la cabecera tambien
cambien en el detalle:

if update(cliente) or update(agente) or update(fecha)
updare detalle set cliente=c.cliente,agente=c.agente,fecha=c.fecha
from detalle d join inserted c on c.numero=d.numero

El problema que tengo es que casi siempre me lo hace bien, pero falla
esporadicamente de vez en cuando sin que se genere ningun error.

¿Hay alguna manera de que automaticamente el sqlserver cambie estas columnas
sin tener que utilizar el trigger?
¿Teneis alguan idea de porque puede fallar de vez en cuando este trigger?.


Saludos y gracias.
 

Leer las respuestas

#1 José Antonio
14/11/2005 - 08:46 | Informe spam
En cuanto a lo de que falla el trigger me refiero que se modifican las
columnas de cliente o fecha o agente y estas se modifican en la cabecera,
pero no se reflejan los cambios en el detalle.

"José Antonio" escribió en el
mensaje news:%23%
Por motivo de rendimiento en consultas estadisticas posteriores tengo en
una tabla cabecera y otra detalle de la misma, tres columnas repetidas,
para que puedan ser claves y los select estadisticos posteriores se
ejecuten con mayor rapided.

Tabla cabecera tiene las columans cliente,agente y fecha.
Tabla detalle tambien tiene estas tres columnas.

En un trigger de update para la tabla cabecera tengo el siguiente codigo
para que si una o varias de estas columnas cambian en la cabecera tambien
cambien en el detalle:

if update(cliente) or update(agente) or update(fecha)
updare detalle set cliente=c.cliente,agente=c.agente,fecha=c.fecha
from detalle d join inserted c on c.numero=d.numero

El problema que tengo es que casi siempre me lo hace bien, pero falla
esporadicamente de vez en cuando sin que se genere ningun error.

¿Hay alguna manera de que automaticamente el sqlserver cambie estas
columnas sin tener que utilizar el trigger?
¿Teneis alguan idea de porque puede fallar de vez en cuando este trigger?.


Saludos y gracias.

Preguntas similares