Partilhar via


MSSQLSERVER_2020

Aplica-se: SQL Server

Detalhes

Atributo Valor
Nome do produto SQL Server
ID do evento 2020
Origem do Evento MSSQLSERVER
Componente SQLEngine
Nome simbólico
Texto da mensagem As dependências reportadas para a entidade "%.*ls" não incluem referências às colunas. Isso ocorre porque a entidade faz referência a um objeto que não existe ou devido a um erro em uma ou mais instruções na entidade. Antes de executar novamente a consulta, verifique se não há erros na entidade e se todos os objetos referenciados por ela existem.

Explicação

A função de sistema sys.dm_sql_referenced_entities relatará qualquer dependência em nível de coluna de referências associadas a esquema. Por exemplo, ela reportará todas as dependências em nível de coluna de uma exibição indexada porque uma exibição indexada exige uma associação de esquema. No entanto, quando a entidade referenciada não estiver associada a esquema, as dependências de coluna serão reportadas somente se todas as instruções com referência a essas colunas puderem ser associadas. Será possível associar as instruções com êxito somente se todos os objetos existirem no momento em que as instruções forem analisadas. Se uma instrução definida na entidade não for associada com êxito, as dependências de coluna não serão relatadas e a coluna referenced_minor_id retornará 0. Quando não for possível resolver as dependências de coluna, ocorrerá o erro 2020. Esse erro não impede que a consulta retorne dependências no nível do objeto.

Ação do usuário

Corrija todos os erros identificados na mensagem antes do erro 2020. Por exemplo, no exemplo de código a seguir, a exibição Production.ApprovedDocuments é definida nas colunas Title, ChangeNumber e Status da tabela Production.Document. A função de sistema sys.dm_sql_referenced_entities é consultada para verificar se há colunas e objetos dos quais a exibição ApprovedDocuments depende. Como a exibição não foi criada com o uso da cláusula WITH SCHEMA_BINDING, as colunas referenciadas na exibição poderão ser modificadas na tabela da referência. O exemplo altera a coluna ChangeNumber da tabela Production.Document, renomeando-a para TrackingNumber. A exibição ApprovedDocuments é consultada novamente na exibição do catálogo; contudo, não é possível associar todas as colunas definidas na exibição. São retornados os erros 207 e 2020 que identificam o problema. Para resolver o problema, a exibição deve ser alterada de modo a refletir o novo nome da coluna.

USE AdventureWorks2022;  
GO  
CREATE VIEW Production.ApprovedDocuments  
AS  
SELECT Title, ChangeNumber, Status  
FROM Production.Document  
WHERE Status = 2;  
GO  
SELECT referenced_schema_name AS schema_name  
,referenced_entity_name AS table_name  
,referenced_minor_name AS referenced_column  
FROM sys.dm_sql_referenced_entities ('Production.ApprovedDocuments', 'OBJECT');  
GO  
EXEC sp_rename 'Production.Document.ChangeNumber', 'TrackingNumber', 'COLUMN';  
GO  
SELECT referenced_schema_name AS schema_name  
,referenced_entity_name AS table_name  
,referenced_minor_name AS referenced_column  
FROM sys.dm_sql_referenced_entities ('Production.ApprovedDocuments', 'OBJECT');  
GO

A consulta retorna as seguintes mensagens de erro.

Msg 207, Level 16, State 1, Procedure ApprovedDocuments, Line 3  
Invalid column name 'ChangeNumber'.  
Msg 2020, Level 16, State 1, Line 1  
The dependencies reported for entity  
"Production.ApprovedDocuments" do not include references to  
columns. This is either because the entity references an  
object that does not exist or because of an error in one or  
more statements in the entity. Before rerunning the query,  
ensure that there are no errors in the entity and that all  
objects referenced by the entity exist.

O exemplo a seguir corrige o nome da coluna na exibição.

USE AdventureWorks2022;  
GO  
ALTER VIEW Production.ApprovedDocuments  
AS  
SELECT Title,TrackingNumber, Status  
FROM Production.Document  
WHERE Status = 2;  
GO

Confira também

sys.dm_sql_referenced_entities (Transact-SQL)