Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve uma linha para cada entidade na base de dados atual que faz referência a outra entidade definida pelo utilizador pelo nome. Uma dependência entre duas entidades é criada quando uma entidade, chamada entidade referenciada, aparece pelo nome numa expressão SQL persistente de outra entidade, chamada entidade referenciadora. Por exemplo, se um tipo definido pelo utilizador (UTT) for especificado como entidade referenciada, esta função devolve cada entidade definida pelo utilizador que faz referência a esse tipo pelo nome na sua definição. A função não devolve entidades noutras bases de dados que possam referenciar a entidade especificada. Esta função deve ser executada no contexto da base de dados mestre para devolver um gatilho DDL ao nível do servidor como entidade referenciadora.
Pode usar esta função de gestão dinâmica para reportar os seguintes tipos de entidades na base de dados atual que referenciam a entidade especificada:
Entidades limitadas ou não vinculadas ao esquema
Disparadores DDL ao nível da base de dados
Gatilhos DDL ao nível do servidor
Aplica-se a: SQL Server (SQL Server 2008 (10.0.x) e posteriores), Base de Dados SQL.
Transact-SQL convenções de sintaxe
Sintaxe
sys.dm_sql_referencing_entities (
' schema_name.referenced_entity_name ' , ' <referenced_class> ' )
<referenced_class> ::=
{
OBJECT
| TYPE
| XML_SCHEMA_COLLECTION
| PARTITION_FUNCTION
}
Arguments
schema_name.referenced_entity_name É o nome da entidade referida.
schema_name é obrigatório, exceto quando a classe referida é PARTITION_FUNCTION.
schema_name.referenced_entity_nameé Nvarchar(517).
<referenced_class> ::= { OBJECT | TYPE | XML_SCHEMA_COLLECTION | PARTITION_FUNCTION } É a classe da entidade referenciada. Apenas uma classe pode ser especificada por afirmação.
<referenced_class> é Nvarchar (60).
Tabela retornada
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| referencing_schema_name | sysname | Esquema ao qual pertence a entidade referenciadora. É anulável. NULL para gatilhos DDL ao nível da base de dados e servidor. |
| referencing_entity_name | sysname | Nome da entidade referenciadora. Não é anulável. |
| referencing_id | int | ID da entidade referenciadora. Não é anulável. |
| referencing_class | tinyint | Classe da entidade referenciadora. Não é anulável. 1 = Objeto 12 = Gatilho DDL ao nível da base de dados 13 = Gatilho DDL ao nível do servidor |
| referencing_class_desc | nvarchar(60) | Descrição da classe da entidade referenciadora. OBJECT DATABASE_DDL_TRIGGER SERVER_DDL_TRIGGER |
| is_caller_dependent | bit | Indica que a resolução do ID da entidade referenciada ocorre em tempo de execução porque depende do esquema do chamador. 1 = A entidade referenciadora tem potencial para referenciar a entidade; no entanto, a resolução do ID da entidade referenciada depende do chamador e não pode ser determinada. Isto ocorre apenas para referências não ligadas ao esquema a um procedimento armazenado, procedimento armazenado estendido ou função definida pelo utilizador chamada numa instrução EXECUT. 0 = A entidade referenciada não depende do chamador. |
Exceptions
Devolve um conjunto de resultados vazio sob qualquer uma das seguintes condições:
É especificado um objeto do sistema.
A entidade especificada não existe na base de dados atual.
A entidade especificada não faz referência a nenhuma entidade.
É passado um parâmetro inválido.
Devolve um erro quando a entidade referenciada especificada é um procedimento armazenado numerado.
Observações
A tabela seguinte lista os tipos de entidades para as quais a informação de dependência é criada e mantida. A informação de dependência não é criada nem mantida para regras, predefinidos, tabelas temporárias, procedimentos armazenados temporários ou objetos do sistema.
| Tipo de entidade | Entidade de referência | Entidade referenciada |
|---|---|---|
| Table | Sim* | Yes |
| View | Yes | Yes |
| Transact-SQL procedimento armazenado** | Yes | Yes |
| Procedimento armazenado CLR | Não | Yes |
| Transact-SQL função definida pelo utilizador | Yes | Yes |
| Função definida pelo utilizador CLR | Não | Yes |
| Gatilho CLR (DML e DDL) | Não | Não |
| Transact-SQL Gatilho DML | Yes | Não |
| Transact-SQL gatilho DDL ao nível da base de dados | Yes | Não |
| Transact-SQL gatilho DDL ao nível do servidor | Yes | Não |
| Procedimentos armazenados ampliados | Não | Yes |
| Fila | Não | Yes |
| Synonym | Não | Yes |
| Tipo (alias e tipo CLR definido pelo utilizador) | Não | Yes |
| Coleção de esquema XML | Não | Yes |
| Função de partição | Não | Yes |
* Uma tabela é acompanhada como entidade de referência apenas quando faz referência a um módulo Transact-SQL, tipo definido pelo utilizador ou coleção de esquema XML na definição de uma coluna computada, restrição CHECK ou restrição DEFAULT.
** Procedimentos armazenados numerados com valor inteiro superior a 1 não são rastreados nem como entidade referenciada nem como entidade referenciada.
Permissions
SQL Server 2008 (10.0.x) - SQL Server 2012 (11.x)
Requer permissão CONTROL no objeto referenciado. Quando a entidade referenciada é uma função de partição, a permissão CONTROL no banco de dados é necessária.
Requer permissão SELECT para sys.dm_sql_referencing_entities. Por padrão, a permissão SELECT é concedida ao público.
SQL Server 2014 (12.x) e posteriores
Não requer permissões sobre o objeto referenciado. Resultados parciais podem ser devolvidos se o utilizador tiver DEFINIÇÃO de VISUALIZAÇÃO apenas em algumas das entidades referenciadoras.
Requer VIEW DEFINITION no objeto quando a entidade referenciadora é um objeto.
Requer VIEW DEFINITION na base de dados quando a entidade referenciadora é um gatilho DDL ao nível da base de dados.
Requer VER QUALQUER DEFINIÇÃO no servidor quando a entidade referenciadora é um gatilho DDL ao nível do servidor.
Examples
A. Devolver as entidades que se referem a uma dada entidade
O exemplo seguinte devolve as entidades na base de dados atual que se referem à tabela especificada.
USE AdventureWorks2022;
GO
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('Production.Product', 'OBJECT');
GO
B. Devolvendo as entidades que se referem a um dado tipo
O exemplo seguinte devolve as entidades que referenciam o tipo dbo.Flagde alias . O conjunto de resultados mostra que dois procedimentos armazenados usam este tipo. O dbo.Flag tipo também é usado na definição de várias colunas na HumanResources.Employee tabela; no entanto, como o tipo não está na definição de uma coluna computada, da restrição CHECK ou da restrição DEFAULT na tabela, não são retornadas linhas para a HumanResources.Employee tabela.
USE AdventureWorks2022;
GO
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('dbo.Flag', 'TYPE');
GO
Aqui está o conjunto de resultados.
referencing_schema_name referencing_entity_name referencing_id referencing_class_desc is_caller_dependent
----------------------- ------------------------- ------------- ---------------------- -------------------
HumanResources uspUpdateEmployeeHireInfo 1803153469 OBJECT_OR_COLUMN 0
HumanResources uspUpdateEmployeeLogin 1819153526 OBJECT_OR_COLUMN 0
(2 row(s) affected)`
Ver também
sys.dm_sql_referenced_entities (Transact-SQL)
sys.sql_dependências_expressões (Transact-SQL)