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
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Retorna o nome do esquema do banco de dados para objetos com escopo de esquema. Para obter uma lista de objetos com escopo de esquema, consulte sys.objects (Transact-SQL).
Transact-SQL convenções de sintaxe
Sintaxe
OBJECT_SCHEMA_NAME ( object_id [, database_id ] )
Arguments
object_id
A ID do objeto a ser usado. object_id é int e é assumido como um objeto de escopo de esquema no banco de dados especificado ou no contexto de banco de dados atual.
database_id
A ID do banco de dados onde o objeto deve ser pesquisado. database_id é int.
Tipos de devolução
sysname
Exceptions
Retorna NULL no erro ou se um chamador não tiver permissão para exibir o objeto. Se o banco de dados de destino tiver a opção AUTO_CLOSE definida como ON, a função abrirá o banco de dados.
Um usuário só pode visualizar os metadados de protegíveis que o usuário possui ou sobre os quais o usuário recebeu permissão. Funções internas emissoras de metadados, como OBJECT_SCHEMA_NAME podem retornar NULL se o usuário não tiver nenhuma permissão no objeto. Para obter mais informações, consulte Configuração de visibilidade de metadados.
Permissions
Requer QUALQUER permissão no objeto. Para especificar um ID de banco de dados, a permissão CONNECT para o banco de dados também é necessária ou a conta de convidado deve estar habilitada.
Observações
As funções do sistema podem ser usadas na lista de seleção, na cláusula WHERE e em qualquer lugar em que uma expressão seja permitida. Para obter mais informações, consulte Expressões e ONDE.
O conjunto de resultados retornado por essa função do sistema usa o agrupamento do banco de dados atual.
Se database_id não for especificado, o Mecanismo de Banco de Dados do SQL Server assumirá que object_id está no contexto do banco de dados atual. Uma consulta que faz referência a um object_id em outro banco de dados retorna resultados NULL ou incorretos. Por exemplo, na consulta seguinte, o contexto da base de dados atual é AdventureWorks2025. O Mecanismo de Banco de Dados tenta retornar um nome de esquema de objeto para o especificado object_id no banco de dados atual em vez do banco de dados especificado na cláusula FROM da consulta. Portanto, informações incorretas são retornadas.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)
FROM master.sys.objects;
O exemplo a seguir especifica a ID do banco de dados para o masterOBJECT_SCHEMA_NAME banco de dados na função e retorna os resultados corretos.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
Examples
A. Retornar o nome do esquema de objeto e o nome do objeto
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
O exemplo a seguir retorna o nome do esquema de objeto, o nome do objeto e o texto SQL para todos os planos de consulta armazenados em cache que não são instruções ad hoc ou preparadas.
SELECT DB_NAME(st.dbid) AS database_name,
OBJECT_SCHEMA_NAME(st.objectid, st.dbid) AS schema_name,
OBJECT_NAME(st.objectid, st.dbid) AS object_name,
st.text AS query_statement
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
WHERE st.objectid IS NOT NULL;
GO
B. Retornar nomes de objeto de três partes
O exemplo a seguir retorna o banco de dados, o esquema e o nome do objeto para todos os objetos no contexto de banco de dados atual.
SELECT QUOTENAME(DB_NAME(db_id()))
+ N'.'
+ QUOTENAME(OBJECT_SCHEMA_NAME(object_id, db_id()))
+ N'.'
+ QUOTENAME(OBJECT_NAME(object_id, db_id()))
, *
FROM sys.objects;
GO
O exemplo a seguir retorna o banco de dados, o esquema e o nome do objeto junto com todas as outras colunas no sys.dm_db_index_operational_stats modo de exibição de gerenciamento dinâmico para todos os objetos em todos os bancos de dados.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
SELECT QUOTENAME(DB_NAME(database_id))
+ N'.'
+ QUOTENAME(OBJECT_SCHEMA_NAME(object_id, database_id))
+ N'.'
+ QUOTENAME(OBJECT_NAME(object_id, database_id))
, *
FROM sys.dm_db_index_operational_stats(null, null, null, null);
GO