我正在尝试使用“附加连接参数”通过 SSMS 18.2 连接到 SQL 2017 实例
StatsLog_On=Yes;StatsLogFile=C:\Temp\TestODBC.txt
Using Connection String Keywords with SQL Server Native Client中的文档并不完美,但它强烈暗示它应该可以工作。我从其他来源知道关键字StatsLog_On
&StatsLogFile
需要一起使用。
当我尝试连接时收到此错误消息
====================================
无法连接到沙盒。
====================================
不支持关键字:“statslog_on”。(系统.数据)
节目地点:
在 System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable,String connectionString,Boolean buildChain,Hashtable 同义词,Boolean firstKey)
在 System.Data.Common.DbConnectionOptions..ctor(字符串 connectionString,哈希表同义词,布尔 useOdbcRules)
在 System.Data.SqlClient.SqlConnectionString..ctor(字符串连接字符串)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions 之前)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey 键,DbConnectionPoolGroupOptions poolOptions,DbConnectionOptions & userConnectionOptions)
在 System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey 键)
在 System.Data.SqlClient.SqlConnection.set_ConnectionString(字符串值)
在 Microsoft.SqlServer.Management.UI.ConnectionDlg.SqlServerType.Microsoft.SqlServer.Management.UI.ConnectionDlg.IServerType.GetConnectionObject(UIConnectionInfo ci)
在 Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci,IServerType 服务器)
在 Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
注意:“Sandbpx”是 SQL 实例的名称
作为现实检查使用Server=sandbox;MultiSubnetFailover=True
工作正常
看起来 SSMS 正在使用 .NET
System.Data.SqlClient
API。据我所知,使用此statslog_on
API 不支持连接属性。我运行了一个简单的程序*,它迭代了该 API 允许的键值对,并提出了连接字符串中允许的这些键
SqlClient
:此列表是专门使用 .NET Framework 4.7.2 生成的。该列表可能会有所不同,具体取决于不同版本的 SSMS 使用的事物的版本。
例如,我安装了 SSMS 18.4。附加调试器告诉我它正在使用 System.Data.dll 的 .NET Framework 4.8 版本:
基于此,我希望在 SSMS 连接字符串中允许其中的任何一个(给予或接受框架的 4.7 和 4.8 版本之间可能发生的变化)。当然,其中一些可能在运行时失败,可能彼此不兼容,或者可能取决于您要连接的数据库类型。
这些特定值的一些允许别名是允许的,并在此处记录:SqlConnection.ConnectionString 属性 - 备注
*这是我用来生成这些值的 C# 程序: