title: Auditing trigger - Column name or number of supplied values does not match table definition
body: <p>I am attempting to create a database trigger capable of creating a snapshot of a 'Transactions' table and storing it in an 'Audit' table along with information pertaining to the date of the inserting, updating or deleting of any rows of data.</p>
  
  <p>Apologies in advance, but I'm very much a novice at this kinda stuff!</p>
  
  <p>As it stands, my trigger is as follows:</p>
  
  <pre><code>create trigger AuditTransactions
  on dbo.Transactions
  after insert, update, delete
  as
  
      if exists(select * from inserted)
      begin
          if exists(select * from deleted)
          begin
              -- this is for an update
              update Audit
              set DeleteDate = getdate()
              where TransactionId in (select TransactionId from deleted)
          end 
  
          -- this is just for an insert
          insert into Audit
          select *, getdate() as CreateDate
          from inserted
      end
      else
      begin
          -- this is just for a delete
          update Audit
          set DeleteDate = getdate()
          where TransactionId in (select TransactionId from deleted)
      end
  
  go
  </code></pre>
  
  <p>And my audit table appears as follows:</p>
  
  <pre><code>CREATE TABLE [dbo].[Audit](
      [TransactionId] [int] NOT NULL,
      [InvoiceNumber] [nvarchar](1) NULL,
      [InvoiceType] [nvarchar](1) NULL,
      [InvoiceIssueDate] [datetime] NULL,
      [InvoiceTotalexclVat] [nvarchar](1) NULL,
      [InvoiceTotalVat] [numeric](18, 0) NULL,
      [InvoiceDiscount] [numeric](18, 0) NULL,
      [InvoiceTotalPayable] [numeric](18, 0) NULL,
      [AccountCode] [nvarchar](1) NULL,
      [Reference1] [nvarchar](1) NULL,
      [Reference2] [nvarchar](1) NULL,
      [Reference3] [nvarchar](1) NULL,
      [Level1CustomOrg] [nvarchar](1) NULL,
      [Level2CustomOrg] [nvarchar](1) NULL,
      [Level3CustomOrg] [nvarchar](1) NULL,
      [Level4CustomOrg] [nvarchar](1) NULL,
      [ScanLocation] [nvarchar](1) NULL,
      [ScanDateTime] [datetime] NULL,
      [CaptureInkjetId] [nvarchar](1) NULL,
      [CaptureBatchId] [nvarchar](1) NULL,
      [CaptureDateTime] [datetime] NULL,
      [InputSource] [nvarchar](1) NULL,
      [CurrencyCode] [nvarchar](1) NULL,
      [DebitCredit] [nvarchar](1) NULL,
      [OrderNumberHeader] [nvarchar](1) NULL,
      [SupplierName] [nvarchar](1) NULL,
      [BancPaySupplierId] [nvarchar](1) NULL,
      [SupplierIDERP] [nvarchar](1) NULL,
      [PaymentDate] [datetime] NULL,
      [DeliveryDate] [datetime] NULL,
      [CustomRef1] [nvarchar](1) NULL,
      [CustomRef2] [nvarchar](1) NULL,
      [CustomRef3] [nvarchar](1) NULL,
      [CustomRef4] [nvarchar](1) NULL,
      [CustomRef5] [nvarchar](1) NULL,
      [CustomRef6] [nvarchar](1) NULL,
      [CustomRef7] [nvarchar](1) NULL,
      [CustomRef8] [nvarchar](1) NULL,
      [CustomRef9] [nvarchar](1) NULL,
      [CustomRef10] [nvarchar](1) NULL,
      [CustomRef11] [nvarchar](1) NULL,
      [CustomRef12] [nvarchar](1) NULL,
      [CustomRef13] [nvarchar](1) NULL,
      [CustomRef14] [nvarchar](1) NULL,
      [CustomRef15] [nvarchar](1) NULL,
      [CustomAmount1] [numeric](18, 0) NULL,
      [CustomAmount2] [numeric](18, 0) NULL,
      [CustomAmount3] [numeric](18, 0) NULL,
      [CustomAmount4] [numeric](18, 0) NULL,
      [CustomAmount5] [numeric](18, 0) NULL,
      [CustomDate1] [datetime] NULL,
      [CustomDate2] [datetime] NULL,
      [Country1] [nvarchar](1) NULL,
      [Country2] [nvarchar](1) NULL,
      [Country3] [nvarchar](1) NULL,
      [Country4] [nvarchar](1) NULL,
      [Country5] [nvarchar](1) NULL,
      [Country6] [nvarchar](1) NULL,
      [Country7] [nvarchar](1) NULL,
      [Country8] [nvarchar](1) NULL,
      [Country9] [nvarchar](1) NULL,
      [Country10] [nvarchar](1) NULL,
      [CheckedOut] [bit] NULL,
      [CheckedOutDate] [datetime] NULL,
      [BlobUrl] [nvarchar](1) NULL,
      [GLCode] [nvarchar](1) NULL,
      [RejectReason] [nvarchar](1) NULL,
      [RejectComment] [nvarchar](1) NULL,
      [ReferMessage] [nvarchar](1) NULL,
      [PaymentTerms] [nvarchar](1) NULL,
      [CheckedOutByUserId] [int] NULL,
      [LastUpdatedByUserId] [int] NULL,
      [TransactionFormatTypeId] [int] NULL,
      [RequestOriginalStatusTypeId] [int] NULL,
      [GLCodeComment] [nvarchar](1) NULL,
      [SenderOrganizationId] [int] NULL,
      [ReceiverOrganizationId] [int] NULL,
      [TransactionStatusTypeId] [int] NULL,
      [TransactionTypeId] [int] NULL,
      [OrganizationId] [int] NULL,
      [OrganizationId1] [int] NULL,
      [CreateDate] [datetime] NOT NULL,
      [DeleteDate] [datetime] NULL
  ) ON [PRIMARY]
  
  GO
  </code></pre>
  
  <p>When attempting to execute the query for the trigger I am getting the following error message:</p>
  
  <pre><code>Msg 213, Level 16, State 1, Procedure AuditTransactions, Line 17
  Column name or number of supplied values does not match table definition.
  </code></pre>
  
  <p>This appears to be the 'insert into Audit' command, but I have no idea what to do from here!</p>
  
  <p>Any help will be hugely appreciated, thanks in advance!</p>