Je développe une base de données pour suivre le mouvement des objets tout au long d'un processus de fabrication. Actuellement, j'ai une table « en direct » de ce qui est actuellement en cours au moment, y compris l'emplacement actuel où il est (tLiveTable)Les déclencheurs de base de données pour une vue historique d'une table dynamique?
tLiveTable:
PieceID TimeStamp LocationRef
------------------------------------------
30 03/12/2012 09:16:26 8
Lorsqu'un PieceID se déplace à une nouvelle emplacement, nous effectuons une mise à jour qui met à jour le LocationRef vers le nouvel emplacement et met à jour l'horodatage avec GetDate().
Cependant, pour une vue historique où les PieceIDs étaient dans le passé, j'ai aussi créé un tableau de suivi (tPieceTracking)
tPieceTracking:
PieceID TimeStamp LocationRef InOut
-----------------------------------------------------
30 03/12/2012 09:11:34 1 1
30 03/12/2012 09:12:13 1 0
30 03/12/2012 09:14:27 2 1
30 03/12/2012 09:15:01 2 0
30 03/12/2012 09:16:26 8 1
sens InOut: 1 = entrée cet endroit , 0 = quitté cette position
Mon plan original était d'INSÉRER un nouvel enregistrement dans tPieceTracking manuellement chaque fois que le PieceID se déplace. Est-ce que je peux utiliser des déclencheurs de base de données ou d'autres types de scripts dans SQL 2005 SP3 pour que la base de données puisse effectuer ce suivi automatiquement (pour que mon application ne soit pas responsable de le faire)? J'ai examiné les déclencheurs de base de données mais la première pierre d'achoppement que j'ai rencontrée est que MSSQL ne supporte apparemment pas BEFORE UPDATE, ce que je pense être ce que je dois déclencher.
Toute aide serait appréciée.