• What about using transactional replication to do this? To minimise load on the production, set up the distributor on a separate server (even the subscriber) and have one-way transactional replication from production to your non-production box (if performance is important, use pull rather than push replication). Both DBs will be online. Then you can run your reports from your non-production box knowing it's up-to-date. You can also backup this database too.

    I think there's a stairway about it on this site.

    ---

    Note to developers:
    CAST(SUBSTRING(CAST(FLOOR(NULLIF(ISNULL(COALESCE(1,NULL),NULL),NULL)) AS CHAR(1)),1,1) AS INT) == 1
    So why complicate your code AND MAKE MY JOB HARDER??!:crazy:

    Want to get the best help? Click here https://www.sqlservercentral.com/articles/forum-etiquette-how-to-post-datacode-on-a-forum-to-get-the-best-help (Jeff Moden)
    My blog: http://uksqldba.blogspot.com
    Visit http://www.DerekColley.co.uk to find out more about me.