Estou tentando me conectar a uma instância do SQL 2017 via SSMS 18.2 com os 'Parâmetros de conexão adicionais'
StatsLog_On=Yes;StatsLogFile=C:\Temp\TestODBC.txt
A documentação em Usando palavras-chave de cadeia de conexão com o SQL Server Native Client não é perfeita, mas indica fortemente que deve funcionar. Eu sei de outras fontes que as palavras-chave StatsLog_On
& StatsLogFile
precisam ser usadas juntas.
Recebo esta mensagem de erro quando tento conectar
===================================
Não é possível conectar ao sandbox.
===================================
Palavra-chave não suportada: 'statslog_on'. (System.Data)
Local do Programa:
em System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable analisable, String connectionString, Boolean buildChain, sinônimos de Hashtable, Boolean firstKey)
em System.Data.Common.DbConnectionOptions..ctor(String connectionString, sinônimos de Hashtable, Boolean useOdbcRules)
em System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
em System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions anterior)
em System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(chave DbConnectionPoolKey, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
em System.Data.SqlClient.SqlConnection.ConnectionString_Set(chave DbConnectionPoolKey)
em System.Data.SqlClient.SqlConnection.set_ConnectionString(valor da string)
em Microsoft.SqlServer.Management.UI.ConnectionDlg.SqlServerType.Microsoft.SqlServer.Management.UI.ConnectionDlg.IServerType.GetConnectionObject(UIConnectionInfo ci)
em Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, servidor IServerType)
em Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
Nota: "Sandbpx" é o nome da instância SQL
Como uma verificação da realidade, o uso Server=sandbox;MultiSubnetFailover=True
funciona bem
Parece que o SSMS está usando a
System.Data.SqlClient
API .NET. Tanto quanto eu posso dizer, astatslog_on
propriedade de conexão não é suportada usando esta API.Eu executei um programa simples* que itera sobre os pares de valores de chave permitidos por essa API e cheguei a essas chaves que são permitidas em strings de conexão para
SqlClient
conexões:Esta lista foi produzida especificamente usando o .NET Framework 4.7.2. A lista pode ser diferente dependendo das versões dos itens usados por diferentes versões do SSMS.
Por exemplo, tenho o SSMS 18.4 instalado. Anexar um depurador informa que ele está usando a versão .NET Framework 4.8 do System.Data.dll:
Com base nisso, eu esperaria que qualquer um deles fosse permitido em uma string de conexão SSMS (dar ou receber o que pode ter mudado entre a versão 4.7 e 4.8 da estrutura). É claro que alguns deles podem falhar em tempo de execução, podem não ser compatíveis entre si ou podem depender do tipo de banco de dados ao qual você está se conectando.
Alguns aliases permitidos para esses valores específicos são permitidos e documentados aqui: Propriedade SqlConnection.ConnectionString - Comentários
*aqui está o programa C# que usei para produzir esses valores: