私は、製造プロセス全体でのオブジェクトの動きを追跡するためのデータベースを開発しています。現在、現在処理中のものの「ライブ」テーブルがあります。これには、現在の場所(tLiveTable)も含まれます。
tLiveTable:
PieceID TimeStamp LocationRef
------------------------------------------
30 03/12/2012 09:16:26 8
PieceIDが新しい場所に移動すると、LocationRefを新しい場所に更新するUPDATEを実行し、GetDate()でタイムスタンプを更新します。
ただし、PieceIDが過去にあった場所の履歴ビューのために、追跡テーブル(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
InOutの意味:1 =その場所に入った、0=その場所を離れた
私の当初の計画は、PieceIDが移動するたびに手動で新しいレコードをtPieceTrackingに挿入することでした。
私の質問は、SQL 2005 SP3内でデータベーストリガーまたは他の種類のスクリプトを使用して、データベースがこの追跡を自動的に実行できるようにすることはできますか(アプリケーションがそれを実行する責任を負わないようにするため)?
データベーストリガーを調べましたが、最初に遭遇した障害は、MSSQLがBEFORE UPDATEをサポートしていないことです。これは、トリガーする必要があると思います。
どんな助けでもいただければ幸いです。