Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何列出SQL Server中的所有连接?_Sql_Sql Server_Tsql_Sql Server 2019 - Fatal编程技术网

如何列出SQL Server中的所有连接?

如何列出SQL Server中的所有连接?,sql,sql-server,tsql,sql-server-2019,Sql,Sql Server,Tsql,Sql Server 2019,我正在使用此版本的SQL Server Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 19041: ) (Hypervisor) 结

我正在使用此版本的SQL Server

Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64)   Oct 28 2019 19:56:59   Copyright (C) 2019 Microsoft Corporation  Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 19041: ) (Hypervisor) 
结果

1629


我想列出所有连接(在本例中为1629),以查看引擎盖下有什么,如何执行此操作?

您可以尝试以下操作:

SELECT DB_NAME(dbid) AS DBName,
COUNT(dbid) AS NumberOfConnections,
loginame
FROM    sys.sysprocesses
GROUP BY dbid, loginame
ORDER BY DB_NAME(dbid)

您可以使用下面的查询查找活动连接-

SELECT
  conn.session_id,
  host_name,
  program_name,
  nt_domain,
  login_name,
  connect_time,
  last_request_end_time
FROM sys.dm_exec_sessions AS sess
INNER JOIN sys.dm_exec_connections AS conn ON sess.session_id = conn.session_id;
:

返回尝试的连接数-成功和失败 不成功-自上次启动SQL Server以来

尽管SQL Server DMV将显示当前连接,但这些连接不包括过去连接的详细信息,也不包括失败的连接尝试。为了获得成功登录和失败登录的历史详细信息,您可以使用或创建带有文件目标的扩展事件跟踪。下面是跟踪方法的DDL示例:

CREATE EVENT SESSION [logins] ON SERVER 
ADD EVENT sqlserver.process_login_finish
ADD TARGET package0.event_file(SET filename=N'logins')
WITH (STARTUP_STATE=ON);

这回答了你的问题吗?我尝试了这个解决方案,但它返回了2行,这不是我所期望的。我还尝试了其他答案中的其他解决方案。我也知道如何使用谷歌搜索。它不能像我提到的那样列出上千个连接。我在电脑里试过了。让我们看一看@DoNhuVy,根据,
@@CONNECTIONS
返回自SQL Server上次启动以来尝试的连接数(成功和失败)。历史详细信息无法通过DMV获得。如果需要这些信息,您需要创建一个跟踪。@Foster90,
sys.sysprocesses
是SQL 2005版本中不推荐使用的视图,在moder SQL Server版本中应该避免使用。@DanGuzman什么是DMV?让我们发布你的答案,我会接受的。@DoNhuVy,DMV是。它不能列出所提到的所有和足够的数千个连接。此函数返回自SQL Server上次启动以来尝试的连接数(成功连接和失败连接)。SQL Server未存储有关这些连接的所有信息。。。此查询返回活动连接的编号:)