What sObject properties don't cause triggers to fire?
It's worth taking a look at Triggers and Order of Execution. It lists out step-by-step what happens when a trigger executes. Specifically, the steps on what happens when workflows fire and the steps on rollup summaries and relations to parents/grandparents is interesting.
If the record contains a roll-up summary field or is part of a cross-object workflow, performs calculations and updates the roll-up summary field in the parent record. Parent record goes through save procedure.
So, updating the child inputs to a roll-up summary field can cause a trigger on an object to fire.
Also, checkout Salesforce - Operations that Don't Invoke Triggers.
Update -- Added example with explanation.
Consider the following example with a Master detail between Child
and Parent
and the following:
- Number field on
Child
calledNum Field
- Roll-up summary on
Parent
that sumsNum Field
Write the following trigger on Parent__c:
trigger ParentTrigger on Parent__c (before update) {
for (Parent__c p : Trigger.New) {
p.addError('Not going to save');
}
}
Now go into the new or edit page for your Child
object and fill in a value for Num Field
and save the record and see what happens. You get:
Error: Invalid Data.
Review all error messages below to correct your data.
Not going to save
Next, blank out the Num Field
and save and see what happens. No error is generated and the Child
saves.
So when the child record is saved and the field feeds into the roll-up summary the parent trigger is executed.
Any child records that are reparented as a result of the merge operation do not fire triggers. http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_merge_statements.htm
A change in the value of a Formula field won't cause the sObjects update triggers to fire.
I did find the idea Fire Trigger on Formula Field value updates.