Sintomas
Considere o seguinte cenário:
- Há uma função SQLCLR declarada como "determinística" e a função pode ser usada para a otimização de "substituição por uma constante".
- Há um sinônimo que aponta para a função SQLCLR.
- Uma TVF (função com valor de tabela) faz referência à função SQLCLR por meio do sinônimo.
Nesse cenário, quando um aplicativo consulta essa TVF, pode ocorrer uma violação de acesso e você pode receber uma mensagem de erro semelhante à seguinte:
Observação
- Mensagem 0, Nível 11, Estado 0, Linha 14
- Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Além disso, uma mensagem de erro é registrada no log de erros do SQL Server.
Resolução
Informações do service pack do SQL Server
Esse problema é corrigido no seguinte service pack para o SQL Server:
Service Pack 2 para SQL Server 2016
Service Pack 3 para SQL Server 2014
Sobre service packs do SQL Server:
Os service packs são cumulativos. Cada novo service pack contém todas as correções dos service packs anteriores, juntamente com as novas correções. Nossa recomendação é aplicar o service pack mais recente e a atualização cumulativa mais recente para esse service pack. Não é necessário instalar um service pack anterior antes de instalar o service pack mais recente. Use a Tabela 1 do artigo a seguir para encontrar mais informações sobre o service pack mais recente e a atualização cumulativa mais recente.
Como determinar a versão, a edição e o nível de atualização do SQL Server e seus componentes
Status
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.