Если вы восстанавливаете БД, вас действительно волнует, кто подключен? Или что делается с этими связями? Я бы подумал, что нет. Просто «выгоните всех», переведя базу данных в однопользовательский режим, а затем восстановите базу данных.
USER master
GO
ALTER DATABASE M2MDATA01
SET SINGLE_USER
--This rolls back all uncommitted transactions in the db.
WITH ROLLBACK IMMEDIATE
GO
RESTORE DATABASE M2MDATA01
FROM DISK = 'C:\Install\SQLBackup\M2MDATA01.SQLBackup'
WITH REPLACE,
MOVE 'M2MDATA01' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\M2MData01.mdf',
MOVE 'M2MDATA01_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\M2MData01.ldf'
GO
Теперь еще один дополнительный элемент, о котором нужно знать. После установки базы данных в однопользовательский режим кто-то другой может попытаться подключиться к базе данных. Если им это удастся, вы не сможете продолжить восстановление. Это гонка! Мое предложение состоит в том, чтобы запустить все три оператора одновременно в одном пакете.