Возникла задача - из ASP.NET сайта восстановить БД из бекапа с помощью sql запроса. При попытке выполнить
RESTORE DATABASE XXX FROM DISC='C:\backup\mybackup.bak' WITH REPLACE
выбрасывалось исключение Restore of the XXX database from location: C:\Backup\mybackup.bak failed. Error: RESTORE cannot process database 'XXX' because it is in use by this session. It is recommended that the master database be used when performing this operation.
Задача успешно выполнилась с помощью следующего кода
USE MASTER;
ALTER DATABASE XXX SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE XXX FROM DISK = 'C:\backup\mybackup.bak' WITH REPLACE,RECOVERY;
ALTER DATABASE XXX SET MULTI_USER WITH ROLLBACK IMMEDIATE;