• Create a restore job and use it for every restore. Then you'll be able to see the duration in job history. In case you need to keep track of restores over a longer time (not just about the last few restores), copy the data into your table. Job history only saves a limited number of rows for each job.

    Here is how you can get some info about job history (there are more columns, this is just an example - you may add failure messages and other, if you need it). The example works for both SQLS2000 and 2005.

    SELECT job.[name] as JobName, his.step_id, his.step_name, his.run_status,his.run_date, his.run_duration, his.server, step.database_name

    from msdb..sysjobs job

    JOIN msdb..sysjobhistory his ON his.job_id = job.job_id

    JOIN msdb..sysjobsteps step ON step.job_id =his.job_id AND step.step_id=his.step_id

    ORDER BY job.[name], his.step_id