[SQL Server] 获取当前连接用户及IP地址

 

SQL Server 2008中查看当天连接用户账号及连接时间、最后执行批处理时间、IP地址的方法。

 

 [T-SQL]

 

	SELECT S.SPID, S.LOGINAME, S.LOGIN_TIME, S.LAST_BATCH, C.CLIENT_NET_ADDRESS 
	FROM sys.sysprocesses S, sys.dm_exec_connections C 
	WHERE S.spid = C.SESSION_ID; 

 

 [执行结果]



 

 

 

<think>我们正在处理用户的问题:在SQL Server获取当前连接所在的数据库称。 根据引用[1]中的内容,有一个查询可以直接获取当前数据库的称: Select Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = @@spid) 但是,我们也可以使用更简单的方法:使用系统函数DB_NAME(),它返回当前数据库的称。这种方法更简洁,也更容易理解。 因此,我们可以提供两种方法: 方法1:使用DB_NAME()函数 SELECT DB_NAME() AS CurrentDatabase; 方法2:使用引用[1]中的查询(基于系统表) 我们更推荐使用DB_NAME()函数,因为它是SQL Server内置函数,专门用于此目的,且简单可靠。 另外,引用[2][3]的内容与当前问题关联不大,引用[2]是关于如何用IP地址连接SQL Server,引用[3]是关于创建自定义数据库用户。所以主要参考引用[1]。 因此,回答如下:</think>在 SQL Server获取当前连接所在的数据库称,有以下两种常用方法: ### 方法 1:使用系统函数 `DB_NAME()` ```sql SELECT DB_NAME() AS CurrentDatabase; ``` - **说明**:`DB_NAME()` 是 SQL Server 内置函数,直接返回当前会话连接的数据库称[^1]。 - **优点**:简洁高效,无需复杂查询。 ### 方法 2:查询系统视图(兼容旧版本) ```sql SELECT name FROM sys.databases WHERE database_id = DB_ID(); ``` - **说明**: - `sys.databases` 系统视图存储所有数据库信息 - `DB_ID()` 函数返回当前数据库的 ID - **适用场景**:需同时获取其他数据库属性时使用 ### 示例输出 两种方法均返回当前连接数据库的称,例如: ``` CurrentDatabase --------------- YourDatabaseName ``` > ⚠️ 注意:在包含数据库(contained database)中,`DB_NAME()` 可能返回不同结果,需结合具体环境验证[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值