Исходя из моего последнего вопроса :
Я написал некоторый код для обновления базы данных SQL Server. Перед обновлением базы данных я планирую ограничить доступ к базе данных следующим заявлением:
ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Перед запуском этого кода я дам пользователю возможность отказаться. Во время запроса пользователя я подумал, что было бы неплохо показать список активных соединений (непрерывно опрашиваемых с установленным интервалом); предоставление пользователю инструмента для идентификации приложений / пользователей, которые он хотел бы загрузить с сервера, прежде чем продолжить.
В SQL 2000 вы можете использовать таблицу sys.sysprocesses
для просмотра всех соединений, которые применяются к базе данных. Это включает в себя соединения, которые не имеют активного запроса (например, когда вы открываете окно Query Analyzer и выбираете базу данных).
Однако, используя:
sys.dm_exec_connections
sys.dm_exec_sessions
; и
sys.dm_exec_requests
Я не мог найти способ достичь того же результата. Похоже, что эти представления только связывают соединения с базой данных через запрос. Есть ли способ имитировать поведение sys.sysprocesses
? Я бы предпочел не использовать эту таблицу для баз данных SQL Server 2005/2008.