Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Não use sys.sql_dependencies no SQL Server (é obsoleto)


O SQL Server tem uma exibição de catálogo do sistema chamada sys.sql_dependencies que retorna informações sobre dependências entre entidades.

A Microsoft marcou essa exibição como obsoleta, o que significa que ela está em modo de manutenção e pode ser removida em uma versão futura do SQL Server. Você deve evitar usar sys.sql_dependencies em um novo trabalho de desenvolvimento, e você deve modificar os aplicativos que o usam atualmente para usar sys.sql_expression_dependencies em vez de.



As sys.sql_expression_dependencies a exibição do catálogo do sistema retorna todas as dependências em uma entidade definida pelo usuário no banco de dados atual. Isso inclui dependências entre funções escalares definidas pelo usuário compiladas nativamente e outros módulos do SQL Server.

Você pode usar essa visualização para:
  • Entidades de retorno que dependem de uma determinada entidade
  • Entidades de retorno das quais uma determinada entidade depende

Por exemplo, você pode usá-lo para retornar todos os objetos que fazem referência a uma tabela específica. Você também pode usá-lo para retornar todos os objetos que um procedimento armazenado específico faz referência em seu código.

Para obter mais informações e exemplos, consulte minha postagem:Localizar dependências no SQL Server:sql_expression_dependencies.

Não tem certeza se você está usando sys.sql_dependencies atualmente?


Se você não tiver certeza se seu sistema usa sys.sql_dependencies , você sempre pode usar sys.dm_os_performance_counters descobrir. Você pode usar essa exibição de gerenciamento dinâmico do sistema para retornar uma contagem de quantas vezes cada recurso preterido foi encontrado desde que o SQL Server foi iniciado. Confira a maneira mais rápida de encontrar recursos obsoletos que ainda estão sendo usados ​​em uma instância do SQL Server para obter mais informações e exemplos.

Um método mais elaborado é usar eventos estendidos para criar um arquivo de log que contém informações extras sobre cada uso do recurso obsoleto. Por exemplo, você pode registrar informações como a instrução SQL que contém o recurso obsoleto, o usuário que o executou, a hora em que foi executado, o banco de dados em que estava e muito mais. Consulte Usando eventos estendidos para registrar recursos obsoletos sendo usados ​​em uma instância do SQL Server para obter instruções passo a passo sobre como fazer isso.

Referência de documentação da Microsoft

  • sys.sql_dependencies
  • sys.sql_expression_dependencies
  • Recursos do mecanismo de banco de dados obsoletos no SQL Server 2017
  • Recursos do mecanismo de banco de dados obsoletos no SQL Server 2016 (igual à lista de 2017)