title: SSRS email subscription event trigger - Data values changed (not Timed subscription)
body: <p>I want an SSRS report to send a report subscription (email or file share) based on a Data Value change in the report data set.  </p>
  
  <p>Let’s say <code>500 rows</code> of the Newest Data in a table all have "<code>Update Time= 9/19 1:40 pm</code>” and then 50 minutes later that table is updated to insert <code>200 new rows</code> with "<code>Update Time=9/19 2:30pm</code>”.  The data value change in this example is the ‘Update Time’ has changed on all records.  I want SSRS to be triggered at 2:30pm based on in this change in the dataset records, and then SSRS will email the new 200 records.  </p>
  
  <p>Can SSRS do this kind of delivery?  Is “data-driven” the answer?  (Doesn’t look to me like data-driven solves this problem; but perhaps I am just not understanding?).  Does snapshot update achieve this?  (I thought snapshots are also time driven?).  </p>
  
  <p>SQL Version: </p>
  
  <pre><code>Microsoft SQL Server 2016 (SP2-CU2) (KB4340355) - 13.0.5153.0 (X64) 
      Jun 28 2018 17:24:28 
      Copyright (c) Microsoft Corporation
      Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2012 R2 Datacenter 6.3 &lt;X64&gt; (Build 9600: ) (Hypervisor)
  </code></pre>
  
  <p><em>NOTE: I will use RANK() windowing function to achieve that grouping pretty easily-- It would group everything as 1 (200) rows, 2 (500) rows, etc.  I would keep only group 1, so all of the records would have a new ‘Update Time’.</em></p>
  
  <p><a href="https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/subscriptions-and-delivery-reporting-services?view=sql-server-2017#triggering-subscription-processing" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/subscriptions-and-delivery-reporting-services?view=sql-server-2017#triggering-subscription-processing</a>. </p>
  
  <p><strong><em>Triggering subscription processing</em></strong></p>
  
  <blockquote>
    <p>The report server uses two kinds of events to trigger subscription
    processing: a <strong>time-driven</strong> event that is specified in a schedule or a
    <strong>snapshot update event</strong>.</p>
    
    <p>A time-driven trigger uses a report-specific schedule or a shared
    schedule to specify when a subscription runs. For on-demand and cached
    reports, schedules are the only trigger option.</p>
    
    <p>A snapshot update event uses the scheduled update of a report snapshot
    to trigger a subscription. <strong>You can define a subscription that is
    triggered whenever the report is updated with new data, based on
    report execution properties that are set on the report.</strong></p>
  </blockquote>
  
  <p><strong><em>Processing a data-driven subscription</em></strong></p>
  
  <blockquote>
    <p><strong>Data-driven subscriptions can produce many report instances that are
    delivered to multiple destinations.</strong> The report layout does not vary,
    but the data in a report can vary if parameter values are passed in
    from a subscriber result set. Delivery options that affect how the
    report is rendered and whether the report is attached or linked to the
    e-mail can also vary from subscriber to subscriber when the values are
    passed in from the row set.</p>
    
    <p>Data-driven subscriptions can produce a large number of deliveries.
    The report server creates a delivery for each row in the row set that
    is returned from the subscription query.</p>
  </blockquote>