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

Triggers Sybase:如何访问更新触发器中更改的列,triggers,sybase,Triggers,Sybase,我正在编写一个触发器,以在更新表后获取所有更改的列。我认为当一个特定的字段被改变时触发是可能的。但对于我的要求来说,这还不够通用。我可以通过比较插入的表和删除的表来实现这一点吗?您可以为更新创建一个触发器! 然后检查更新了哪些列 您还可以比较before(deletedtable)和after(insertedtable),但您也必须单独查看每一列。当您说“不够通用”时,听起来好像您想使用触发器作为一种通用方法,以找出哪些列中的表在,您需要为某些/许多表使用该方法,这些表具有各种键和字段 aF建

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

您可以为更新创建一个
触发器!
然后检查更新了哪些列

您还可以比较before(
deleted
table)和after(
inserted
table),但您也必须单独查看每一列。

当您说“不够通用”时,听起来好像您想使用触发器作为一种通用方法,以找出哪些列中的表在,您需要为某些/许多表使用该方法,这些表具有各种键和字段

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


如果您想泛化一些东西,如果我理解的话,我认为这意味着您需要编写一些工具,将您配置为元数据的表列表放在某个位置,并将它们处理为执行所需操作的触发器(例如将主键内容、表Id和更改的字段保存在某个位置)

我在使用sys\u columns表中的列名进行循环时遇到一些困难。目前,我正在使用trigger for update手动逐列检查。对于一张50杯的桌子来说不是个好主意:(