CORREÇÃO: Violação de acesso ocorre quando uma consulta faz referência a uma função do SQLCLR por meio de um sinônimo no SQL Server 2014 e 2016

Aplica-se a: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

Sintomas


Considere o seguinte cenário:

  • Há uma função do SQLCLR é declarada como "determinista" e a função pode ser usada para a otimização de "substituição com uma constante".
  • Há um sinônimo que aponta para a função do SQLCLR. 
  • Faz referência a uma função table valued (TVF) para a função do SQLCLR pelo sinônimo.

Neste cenário, quando um aplicativo consulta este TVF, pode ocorrer uma violação de acesso, evocê pode receber uma mensagem de erro semelhante à seguinte:

Mensagem 0, nível 11, estado 0, linha 14

Ocorreu um erro grave no comando atual. Os resultados, se houver algum, deverão ser descartados.

Além disso, uma mensagem de erro é registrada no log de erros do SQL Server.

Resolução


Informações do service pack para SQL Server

Esse problema foi corrigido no service pack seguinte do SQL Server:

       Service Pack 2 para SQL Server 2016

       Service Pack 3 para o SQL Server de 2014

Status


A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Referências


Saiba mais sobre a terminologia usada pela Microsoft para descrever as atualizações de software.