Sybase:如何在更新触发器中访问已更改的列

时间:2012-08-13 03:22:50

标签: triggers sybase

我正在编写一个触发器,以便在更新表后获取所有已更改的列。我认为在特定字段更改时触发触发器是可能的。但这对我的要求来说不够通用。我可以通过比较插入和删除的表来做到这一点吗?

2 个答案:

答案 0 :(得分:0)

您可以创建trigger进行更新! 然后检查哪些列已更新。

您还可以比较之前(deleted表)和之后(inserted表),但您还必须单独查看每列。

答案 1 :(得分:0)

当你说“不够通用”时,听起来好像你已经记住使用触发器作为查找哪些表在哪些列中更改的一般方法,并且你想要一些/多个表的方法,它有各种键和字段。

aF建议使用“for”(或after)触发器,您可以比较插入和删除,或使用“if update(column-name)...”函数。

如果你想要对事物进行泛化,如果我理解,我认为这意味着你需要编写一些工具,将你在某处配置为元数据的表列表并将它们处理成执行什么操作的触发器你想要的(例如在某处保存主键内容,表格ID和更改的字段。)