1. the **Comit** column was set to 1 by the update 2. the original (old) value was equal to 0Otherwise, you might erroneously grab the updated record where **Comit** was subjected to update from 1 to 0. If the **Comit** column is nullable then updating from **null** to **1** or from **0** to **1** satisfy your criteria, and therefore, your predicate should probably read
where isnull(d.Comit, 0) = 0 and i.Comit = 1;
Please forgive me if I am going into details too deep, but since you mentioned that your are new to SQL, **inserted** and **deleted** refer to logical tables which are available to the triggers and output clauses. **Deleted** has all records affected by the update statement with old values, **inserted** has the same records with new values. Update trigger fires ***once per update statement***, not per record, so if update affects 10 records, each logical table has 10 records in it. There is a discussion about update here:
http://ask.sqlservercentral.com/questions/16288/update-under-the-hood
No one has followed this question yet.