title: Insert records to another table with trigger if row changes except one column
body: <p><strong>Case</strong></p>
  
  <p>I have two tables with following structures (I removed 34 other columns that were not related to question)</p>
  
  <pre><code>Table1
  ------
  Id
  LastAccessed
  Data1
  Data2
  
  Table1_History
  ------
  _Id
  Action
  Id
  LastAccessed
  Data1
  Data2
  </code></pre>
  
  <p>Every time a user reads the record (with specific procedure) the <code>LastAccessed</code> timestamp will change.</p>
  
  <p>I attached a trigger to <code>Table1</code> which copies the record to history table if <code>Data1</code> or <code>Data2</code> (or in my case any other column changes); However I don't want a copy or record in case <code>LastAccessed</code> changes.</p>
  
  <p>Here is my trigger</p>
  
  <pre><code>CREATE TRIGGER [TRIGGER!] 
     ON  TABLE1
     AFTER UPDATE, DELETE
  AS 
  BEGIN
      SET NOCOUNT ON;
      IF NOT UPDATE([LastAccessed]) BEGIN
          IF EXISTS(SELECT * FROM inserted) BEGIN
              INSERT INTO [Table1_Hist](
                  Action, Id, LastAccessed, Data1, Data2
              ) SELECT 
                  'EDIT', Id, LastAccessed, Data1, Data2
              FROM deleted
          END ELSE BEGIN
              INSERT INTO [Table1_Hist](
                  Action, Id, LastAccessed, Data1, Data2
              ) SELECT 
                  'DELETE', Id, LastAccessed, Data1, Data2
              FROM deleted
          END
      END
  END
  </code></pre>
  
  <p>This trigger will not copy row if LastAccessed and Data1 both change (which I want to). to solve this issue I can change the <code>IF</code> statement to </p>
  
  <pre><code>IF UPDATE(Id) OR UPDATE(Data1) OR UPDATE(Data2) ... BEGIN
  </code></pre>
  
  <p>In this case it will work as intended</p>
  
  <p><strong>Question:</strong>
  As I have 34 columns in my table it is not easy to specify every column in <code>IF</code> statement.
  Is there any easier way of doing this?</p>