nice tip.. I have played around updating the subscriptions table also.. because we needed to email the same report to 70 users, by just changing one user parameter on the report. I dint want to crate 70 subscriptions, so created 1 email subscriotion which created a record in subscriptions table and also a agent job.
1) created a table to store the 70 userid & email
2) Then wrote a SP to loop and update the parameters & extensionsettings fields in the subscription table
3) Kick off the subscription using below statement after each update
ReportServer.dbo.AddEvent @EventType='TimedSubscription', @EventData='asdasd-12sad-dsfas-dzfad-dfasdfsdfsd'
4) Wait a minute using "Waitfor Delay"
5) Updated the Agent job, commented the "ReportServer.dbo.AddEvent" in the job step and called the SP in that step.
So now the subscription throws an error when you try to edit from Report Manager, which is good because if somebody edits it, SSRS will update existing job with the addevent step. This works fine because if later I need to change email or add new users, I just need to add a record to the table.
Do you know of any other better way to do this??