在 SQL 查询中检索当前的 SQL Server 连接字符串

Ham*_*iab 2 t-sql sql-server ssms

(这是一个抽象的问题)

如何从 T-SQL 查询中获取当前连接字符串?

我的意思是需要这样的东西:

Select ConnectionString From Something
Run Code Online (Sandbox Code Playgroud)

我得到这样的结果:

data source=HAMCKER-PC;initial catalog=CMMS;trusted_connection=true
Run Code Online (Sandbox Code Playgroud)

为什么我需要这个

其实我想通过我的连接字符串传递一些额外的参数,假设上面的连接是这样的:

data source=HAMCKER-PC;initial catalog=CMMS;trusted_connection=true;Area=W9
Run Code Online (Sandbox Code Playgroud)

W9在查询中需要它。

Nic*_*aid 6

获取数据源使用

SELECT @@SERVERNAME
Run Code Online (Sandbox Code Playgroud)

初始目录:

SELECT DB_NAME()
Run Code Online (Sandbox Code Playgroud)

我也可以去查找 trust_connection ,但我不明白这一点,因为你已经连接了所以你已经知道了。

如果您想使用连接字符串传递附加信息,您的选择是有限的。您可能应该使用application namewhich 可以通过SELECT APP_NAME()或访问Workstation ID。但这些是有意义的,我不愿意“劫持”它们

您还可以使用 CONTEXT_INFO 传递信息 msdn.microsoft.com/en-us/library/ms187768.aspx、msdn.microsoft.com/en-us/library/ms180125.aspx

  • 客户端 API 不会将连接字符串发送到 SQL Server。对于某些连接字符串关键字(如应用程序名称和主机名),它通过 TDS 协议消息将值传递给 SQL Server。其他值在服务器上不可用。 (2认同)