.

Ajuste do Nível de Compatibilidade do Banco de Dados SQL Server

34 Visualizações
1, julho de 2026
Márcio Rodrigues

Objetivo

Orientar administradores de banco de dados e equipes de implantação sobre como identificar e corrigir problemas relacionados ao Nível de Compatibilidade (Compatibility Level) do banco de dados utilizado pelo Tactium.


Sintoma

Durante a execução de scripts de atualização ou procedures do Tactium podem ocorrer erros semelhantes aos abaixo:

'TRY_CONVERT' is not a recognized built-in function name.

Incorrect syntax near the keyword 'ELSE'.

'TRY_CAST' is not a recognized built-in function name.

Mesmo quando o servidor utiliza uma versão recente do SQL Server (2019 ou superior).


Causa

Embora o SQL Server instalado suporte funções como TRY_CONVERT, TRY_CAST e outros recursos modernos, o banco de dados pode estar configurado com um Nível de Compatibilidade inferior ao exigido pela aplicação.

Nessa situação, o SQL Server passa a interpretar os comandos utilizando regras de versões antigas, ocasionando falhas na compilação das procedures.


Como verificar o nível de compatibilidade

Execute a consulta abaixo:

SELECT
    name,
    compatibility_level
FROM sys.databases
WHERE name = DB_NAME();

Exemplo de retorno:

Banco compatibility_level
CRM 100

Como identificar a versão do SQL Server

SELECT @@VERSION;

Exemplo:

Microsoft SQL Server 2019
15.x

Compatibilidade recomendada

Versão do SQL Server Compatibility Level
SQL Server 2012 110
SQL Server 2014 120
SQL Server 2016 130
SQL Server 2017 140
SQL Server 2019 150
SQL Server 2022 160

Como alterar o nível de compatibilidade

Pré-requisito: possuir permissão de administrador (ALTER DATABASE).

Execute:

ALTER DATABASE [NomeDoBanco]
SET COMPATIBILITY_LEVEL = 150;

Substitua NomeDoBanco pelo nome do banco do CRM.


Como confirmar a alteração

Após executar o comando, valide novamente:

SELECT
    name,
    compatibility_level
FROM sys.databases
WHERE name = DB_NAME();

Resultado esperado:

Banco compatibility_level
CRM 150

Próximo passo

Após alterar o nível de compatibilidade:

  • Execute novamente a atualização do Tactium.
  • Reexecute a procedure que apresentou erro.
  • Valide se não existem novas mensagens de compilação.

Perguntas Frequentes

O SQL Server é 2019. Por que ocorre esse erro?

Porque o Compatibility Level do banco está configurado para uma versão antiga (por exemplo, 100 ou 110). O SQL Server executa determinadas instruções respeitando esse nível de compatibilidade.


Alterar o Compatibility Level atualiza o SQL Server?

Não.

O comando altera apenas o comportamento do banco de dados, sem modificar a versão instalada do SQL Server.


Há risco em alterar o nível de compatibilidade?

Em geral, não. A alteração é suportada pela Microsoft e recomendada quando o banco é executado em versões mais recentes do SQL Server.

Entretanto, como qualquer alteração de configuração, recomenda-se:

  • realizar backup do banco de dados;
  • executar a alteração em ambiente de homologação quando possível;
  • validar os processos críticos da aplicação após a mudança.

Preciso reiniciar o SQL Server?

Não.

A alteração é aplicada imediatamente e não requer reinicialização do serviço.


Preciso executar a alteração em todos os bancos?

Somente nos bancos utilizados pelo Tactium que apresentarem nível de compatibilidade inferior ao suportado pela versão instalada do SQL Server.


Recomendação da Tactium

Para ambientes executando Microsoft SQL Server 2019, recomenda-se manter o banco de dados do Tactium com Compatibility Level 150, garantindo suporte aos recursos utilizados pelas versões atuais da aplicação e evitando erros durante futuras atualizações.


Boas práticas para futuras implantações

Antes de iniciar qualquer atualização do Tactium, recomenda-se validar:

  • ✔ Versão do SQL Server suportada pela versão da aplicação.
  • ✔ Nível de compatibilidade do banco de dados.
  • ✔ Backup atualizado do banco.
  • ✔ Permissões do usuário responsável pela atualização.

Essa verificação preventiva reduz significativamente a ocorrência de falhas durante a execução de scripts de atualização e procedimentos armazenados.


Este conteúdo foi útil para você?
Array
50% LikesVS
50% Dislikes