我正在开发一个数据库来跟踪整个制造过程中物体的移动。目前我有一个“实时”表,其中包含目前正在处理的内容,包括它的当前位置(tLiveTable)
tLiveTable:
PieceID TimeStamp LocationRef
------------------------------------------
30 03/12/2012 09:16:26 8
当 PieceID 移动到新位置时,我们执行更新,将 LocationRef 更新到新位置,并使用 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,我认为这是我需要触发的。
任何帮助,将不胜感激。