【问题标题】:Retrieve current SQL Server connection string within SQL query在 SQL 查询中检索当前 SQL Server 连接字符串
【发布时间】:2014-11-29 05:31:14
【问题描述】:

(这是一个抽象的问题)

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

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

Select ConnectionString From Something

我得到这样的结果:

data source=HAMCKER-PC;initial catalog=CMMS;trusted_connection=true

我为什么需要这个

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

data source=HAMCKER-PC;initial catalog=CMMS;trusted_connection=true;Area=W9

我的查询中需要W9

【问题讨论】:

标签: sql-server tsql ssms


【解决方案1】:

获取数据源使用

SELECT @@SERVERNAME

初始目录:

SELECT DB_NAME()

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

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

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

【讨论】:

  • 感谢您的时间。我已经测试将自定义数据发送到 sql-server,它不会崩溃,但问题是要检索该数据!
  • 客户端 API 不会将连接字符串发送到 SQL Server。对于一些连接字符串关键字,如应用程序名和主机名,它通过 TDS 协议消息将值传递给 SQL Server。服务器上没有其他值。
  • “问题是检索该数据”?你的意思是你的“区域”字符串?如果它不是连接字符串属性,则不会通过。如果您进一步解释,可能还有其他方法可以做您想做的事情。
猜你喜欢
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
相关资源
最近更新 更多