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函数

如何在 SQL Server 2005 中进行更新插入(更新或插入)

sqlserver2005触发器问题

如何在SQL Server 2005中进行upsert(更新或插入)