仅获取SQL Server Update trigger
,更有效的解决方案是对插入和已删除的表格,创建一个具有唯一键键(contield contield field)的字段(five)(contrace)名称(contive)(contecue),则可以更有效地解决此方法。 By joining these two tables, it is possible to identify any rows where FieldValue has changed, giving us the modified values.
CREATE TRIGGER TriggerName ON dbo.Sample_Table FOR DELETE, INSERT, UPDATE AS 开始 设置nocount; - 删除了未分明 使用DELETED_UNPVT为( 选择ContactID,FieldName,FieldValue 从(选择ContactID,Forename,姓氏,Extn,电子邮件,从已删除的年龄)p undivot(inforname,foreName,姓氏,extn,email,age)in deleted_unpvt in fieldvalue ), - 插入未分明 inserted_unpvt as( 选择ContactID,FieldName,FieldValue 从(选择ContactID,Forename,姓氏,Extn,电子邮件,插入年龄)p undivot(in inserted_unpvt ) - 加入他们并确定更改 插入sample_table_changes(contactID,fieldname,fieldvaluewas,fieldvalueis) 选择cocecce(d.contactid,i.contactid)contactid, cocece(d.fieldname,i.fieldname)fieldname, D.FieldValue作为FieldValuewas, I.FieldValue作为fieldValueis 来自DELETED_UNPVT d 完整的外部加入inserted_unpvt i 在d.contactid上 d.fieldvalue i.FieldValue 或(D.FieldValue不是零,而I.FieldValue为null) 或(d。fieldvalue为null,而i.fieldValue并非零); - 使用sample_table_changes的内容进行复制 结尾 GO
这种非决定性方法可以有效地处理更改,删除和插入,而无需使用复杂的动态SQL或面对Bitfield算术杂项溢出问题。只要使用附加的GUID列用于识别,它也不会受到天然主键的更改的影响。免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3