【发布时间】:2013-08-17 22:06:08
【问题描述】:
对于跟踪表更新的触发器,可能会引用两个临时表:删除和插入。有没有办法在它们的主键上使用 INNER JOIN 来交叉引用这两者?
我试图在没有外键的情况下保持引用完整性(不要问),所以我使用了触发器。我希望表 A 中主键的 UPDATE 反映在查找表 B 的“外键”中,并且当 UPDATE 影响表 A 中的多个记录时会发生这种情况。
我见过的所有 UPDATE 触发器示例都取决于连接插入和删除的表以跟踪更改;他们使用更新后的表的 ID 字段(主键)来设置连接。但如果该 ID 字段 (GUID) 是记录(或记录集)中的更改字段,是否有一种好方法可以跟踪这些更改,以便我可以在相应的查找表中强制执行这些更改?
【问题讨论】:
-
为什么要更新主键?在进行此类更改之前和之后,您还期望如何识别您更改的行?
-
老实说,我不知道。我正在更新一个应用程序,它的逻辑有点混乱。我正在尝试对这个触发器进行未来证明(阅读:白痴证明),以便在路上没有人会意外地孤立一整套记录。想法?
标签: sql-server tsql triggers sql-update