Se você observar como alterar temporariamente as configurações do SQL Server para executar uma tarefa e, quando terminar, reverter, há uma maneira de salvar as configurações do SQL Server antes de habilitá-las, para que você possa desabilitá-las se necessário.
Aqui está o código (parcialmente copiado):
IF OBJECT_ID('tempdb.dbo.#Settings') IS NOT NULL
DROP TABLE #Settings;
CREATE TABLE #Settings
(
Setting VARCHAR(100),
Val INT
)
INSERT #Settings (Setting, Val)
SELECT 'show advanced options', cast(value_in_use as int) from sys.configurations where name = 'show advanced options'
UNION
SELECT 'xp_cmdshell', cast(value_in_use as int) from sys.configurations where name = 'xp_cmdshell'
UNION
SELECT 'Ad Hoc Distributed Queries', cast(value_in_use as int) from sys.configurations where name = 'Ad Hoc Distributed Queries'
SELECT * FROM #Settings;
Isso funciona bem se você executar um procedimento por vez; no entanto, ele grava no log de erros do SQL Server, como você pode ver abaixo:
Existe uma maneira de evitar gravar alterações de configurações no log de erros?
Assim como Remus afirmou na resposta que você vinculou, não há nenhuma funcionalidade pronta para uso para desabilitar a gravação dessas mensagens no log de erros.
Isso não significa que não seja tecnicamente possível, apenas não é suportado. Você precisaria editar o binário você mesmo para remover a chamada para o registro, injetar algo que faça isso dinamicamente ou escrever um driver de filtro para descartar quaisquer dados que você não queira salvar no registro.
Observe que isso se aplica apenas ao log de erros, o que não impede o registro em outras áreas ou itens, como rastreamentos SQL ou eventos estendidos.
Parece ser um pouco demais para mensagens informativas que não parecem causar nenhum dano.
ERRORLOG
é apenas um arquivo de texto armazenado no local configurado.Você pode editar esses arquivos de texto por sua conta e risco.
Se você fizer isso em um sistema de produção, provavelmente estará ignorando ou violando alguma regra de conformidade.
Se você decidir fazer isso mesmo assim, precisará liberar o bloqueio do arquivo de log em uso, interrompendo o processo do SQL Server ou ciclando o arquivo usando sp_cycle_errorlog .
Isso não impede que a mensagem seja gravada no log em primeiro lugar, nem impedirá que processos posteriores ingiram a mensagem de log (nem deveria).