Sql Server 2005 - 插入更新触发器 - 获取更新,插入行
Posted
技术标签:
【中文标题】Sql Server 2005 - 插入更新触发器 - 获取更新,插入行【英文标题】:Sql Server 2005 - Insert Update Trigger - Get updated, insert row 【发布时间】:2010-01-16 14:34:19 【问题描述】:我想为插入和更新创建一个表触发器。如何获取插入/更新的当前记录的值?
【问题讨论】:
【参考方案1】:在触发器中,您可以使用名为“inserted”的表来访问新记录的值和更新记录的新版本。同样,名为“已删除”的表允许您访问已删除记录和更新记录的原始版本。
【讨论】:
【参考方案2】:在列上使用函数“更新”(如果您想检查更新的事实)或从表“插入”中检索行
【讨论】:
【参考方案3】:虽然可以为此使用触发器,但在决定实施它们时我会非常小心。它们绝对不适合调试,并且可能导致缺乏可维护性。
如果您需要进行级联更新(即更改表 A 进而更改表 B),我会使用存储过程(比触发器更容易测试和调试),或者如果您足够幸运要使用 ORM(实体框架、NHibernate 等)在您的模型或存储库中执行此功能。
【讨论】:
以上是关于Sql Server 2005 - 插入更新触发器 - 获取更新,插入行的主要内容,如果未能解决你的问题,请参考以下文章
sql 检测更新触发器中修改的字段(sql server 2005)?
SqlDependency通知sql server 2005不会在多个插入上触发
深入理解SQL Server 2005 中的 COLUMNS_UPDATED函数