按数据库对sys.dm_exec_connections进行分组(它不像sys.sysprocesses)

时间:2009-04-19 10:40:55

标签: sql-server connection

继续last question

我写了一些代码来升级SQL Server数据库。在升级数据库之前,我计划使用以下语句限制对数据库的访问:

ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE

在运行此代码之前,我会给用户一个选择退出的机会。在提示用户时,我认为显示活动连接列表(以设定的间隔连续轮询)会很好;为用户提供工具,以便在继续之前识别他们想要从服务器启动的应用程序/用户。

在SQL 2000中,您可以使用sys.sysprocesses表查看适用于数据库的所有连接。这包括没有活动请求的连接(例如,当您打开查询分析器窗口并选择数据库时)。

但是,使用:

  • sys.dm_exec_connections
  • sys.dm_exec_sessions;和
  • sys.dm_exec_requests

我无法找到实现相同结果的方法。看来这些视图只通过请求将连接与数据库联系起来。有没有办法模仿sys.sysprocesses的行为?我不想将此表用于SQL Server 2005/2008数据库。

1 个答案:

答案 0 :(得分:0)

呃......我为你的其他问题推荐了这些。

很抱歉,但是,我发现你仍然需要使用sysprocesses

它被记录为Microsoft Connect 144515中要修复的错误I found it here

就个人而言,我仍然使用sysprocesses,因为我对它感到很舒服,不管是懒惰还是luddite可能是......