如何获取sql server 2005中数据库连接的详细列表?

发布于 2024-10-11 12:19:25 字数 38 浏览 3 评论 0原文

如何获取sql server 2005中数据库连接的详细列表?

How to get detailed list of connections to database in sql server 2005?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

做个ˇ局外人 2024-10-18 12:19:26

sp_who2 实际上会提供数据库服务器的连接列表,而不是数据库。要查看单个数据库(本例中为 YourDatabaseName)的连接,您可以使用

DECLARE @AllConnections TABLE(
    SPID INT,
    Status VARCHAR(MAX),
    LOGIN VARCHAR(MAX),
    HostName VARCHAR(MAX),
    BlkBy VARCHAR(MAX),
    DBName VARCHAR(MAX),
    Command VARCHAR(MAX),
    CPUTime INT,
    DiskIO INT,
    LastBatch VARCHAR(MAX),
    ProgramName VARCHAR(MAX),
    SPID_1 INT,
    REQUESTID INT
)

INSERT INTO @AllConnections EXEC sp_who2

SELECT * FROM @AllConnections WHERE DBName = 'YourDatabaseName'

(改编自 SQL Server:过滤 sp_who2 的输出。)

sp_who2 will actually provide a list of connections for the database server, not a database. To view connections for a single database (YourDatabaseName in this example), you can use

DECLARE @AllConnections TABLE(
    SPID INT,
    Status VARCHAR(MAX),
    LOGIN VARCHAR(MAX),
    HostName VARCHAR(MAX),
    BlkBy VARCHAR(MAX),
    DBName VARCHAR(MAX),
    Command VARCHAR(MAX),
    CPUTime INT,
    DiskIO INT,
    LastBatch VARCHAR(MAX),
    ProgramName VARCHAR(MAX),
    SPID_1 INT,
    REQUESTID INT
)

INSERT INTO @AllConnections EXEC sp_who2

SELECT * FROM @AllConnections WHERE DBName = 'YourDatabaseName'

(Adapted from SQL Server: Filter output of sp_who2.)

谈情不如逗狗 2024-10-18 12:19:26

正如 @Hutch 指出的,sp_who2 的主要限制之一是它不接受任何参数,因此默认情况下您无法对其进行排序或过滤。您可以将结果保存到临时表中< /a>,但是您必须提前声明所有类型(并记住DROP TABLE)。

相反,您可以直接转到 master.dbo.sysprocesses 上的源代码,

我构建的这个输出几乎与 sp_who2 生成的内容完全相同,只是您可以轻松添加 ORDER BYWHERE 子句以获得有意义的输出。

SELECT  spid,
        sp.[status],
        loginame [Login],
        hostname, 
        blocked BlkBy,
        sd.name DBName, 
        cmd Command,
        cpu CPUTime,
        physical_io DiskIO,
        last_batch LastBatch,
        [program_name] ProgramName   
FROM master.dbo.sysprocesses sp 
JOIN master.dbo.sysdatabases sd ON sp.dbid = sd.dbid
ORDER BY spid 

As @Hutch pointed out, one of the major limitations of sp_who2 is that it does not take any parameters so you cannot sort or filter it by default. You can save the results into a temp table, but then the you have to declare all the types ahead of time (and remember to DROP TABLE).

Instead, you can just go directly to the source on master.dbo.sysprocesses

I've constructed this to output almost exactly the same thing that sp_who2 generates, except that you can easily add ORDER BY and WHERE clauses to get meaningful output.

SELECT  spid,
        sp.[status],
        loginame [Login],
        hostname, 
        blocked BlkBy,
        sd.name DBName, 
        cmd Command,
        cpu CPUTime,
        physical_io DiskIO,
        last_batch LastBatch,
        [program_name] ProgramName   
FROM master.dbo.sysprocesses sp 
JOIN master.dbo.sysdatabases sd ON sp.dbid = sd.dbid
ORDER BY spid 
Bonjour°[大白 2024-10-18 12:19:26

还有谁活跃?

谁是活跃的?是一个综合性的
基于服务器活动存储过程
在 SQL Server 2005 和 2008 上
动态管理视图 (DMV)。思考
它作为 sp_who2 在大剂量
合成代谢类固醇

There is also who is active?:

Who is Active? is a comprehensive
server activity stored procedure based
on the SQL Server 2005 and 2008
dynamic management views (DMVs). Think
of it as sp_who2 on a hefty dose of
anabolic steroids

梦年海沫深 2024-10-18 12:19:25

使用系统存储过程sp_who2

Use the system stored procedure sp_who2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文