sql 检测更新触发器中修改的字段(sql server 2005)?
Posted
技术标签:
【中文标题】sql 检测更新触发器中修改的字段(sql server 2005)?【英文标题】:sql to detect fields modified in update trigger ( sql server 2005 )? 【发布时间】:2009-01-12 08:55:17 【问题描述】:在 sql server 2005 中,在更新触发器中可以找到由原始更新查询修改的字段\列的列表。
我有一个包含 150 列的表,并且在触发器内部需要知道是否只更新了一个特定字段(并且没有修改其他字段)
我可以写一个很长的 sql 来比较 150 列,但它容易出错并且看起来很愚蠢!
解决这个问题的任何体面的方法。我希望一些 sql2005 api 能来救我。
【问题讨论】:
看看这个答案***.com/a/8020461/350188,它非常适合在较大的表格中挑选几个字段。也比使用 columns_updated 更痛苦 【参考方案1】:看看COLUMNS_UPDATED - 这有点痛苦,但你应该能够很容易地根据你的要求使用它。 SQL Server Central 上有一篇不错的文章。
【讨论】:
以上是关于sql 检测更新触发器中修改的字段(sql server 2005)?的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server2008 触发器中,根据一个表修改另外一个表
关于使用sql server 2008触发器完成修改一张表里一个字段同时修改另一张表的另一字段