僅獲取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