sys.objects (Transact-SQL)

Aplica-se a:yesSQL Server (todas as versões compatíveis) YesBanco de Dados SQL do Azure YesInstância Gerenciada de SQL do Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Contém uma linha para cada objeto definido pelo usuário, com escopo de esquema, que é criado em um banco de dados, incluindo a função escalar definida pelo usuário compilada nativamente.

Para obter mais informações, consulte Funções escalares definidas pelo usuário para OLTP in-memory.

Observação

sys.objects não mostra gatilhos DDL, porque eles não estão no escopo do esquema. Todos os gatilhos, DML e DDL, são encontrados em sys.triggers. sys.triggers dá suporte a uma mistura de regras de escopo de nome para os vários tipos de gatilhos.

Nome da coluna Tipo de dados Descrição
name sysname Nome do objeto.
object_id int Número de identificação do objeto. É exclusivo em um banco de dados.
principal_id int ID do proprietário individual, se for diferente do proprietário do esquema. Por padrão, os objetos contidos no esquema pertencem ao proprietário do esquema. No entanto, um proprietário alternativo pode ser especificado usando a instrução ALTER AUTHORIZATION para alterar a propriedade.

Será NULL se não houver nenhum proprietário individual alternativo.

Será NULL se o tipo de objeto for um dos seguintes:

C = Restrição CHECK

D = DEFAULT (restrição ou autônomo)

F = Restrição FOREIGN KEY

PK = Restrição PRIMARY KEY

R = Regra (estilo antigo, autônomo)

TA = Gatilho de assembly (integração CLR)

TR = Gatilho SQL

UQ = Restrição UNIQUE

EC = Restrição de borda
schema_id int ID do esquema em que o objeto está contido.

Os objetos do sistema de escopo de esquema estão sempre contidos nos esquemas sys ou INFORMATION_SCHEMA.
parent_object_id int ID do objeto ao qual este objeto pertence.

0 = Não é um objeto filho.
tipo char(2) Tipo de objeto:

AF = Função de agregação (CLR)

C = Restrição CHECK

D = DEFAULT (restrição ou autônomo)

F = Restrição FOREIGN KEY

FN = Função escalar SQL

FS = Função escalar de assembly (CLR)

FT = Função avaliada por tabela de assembly (CLR)

IF = Função SQL com valor de tabela embutida

IT = Tabela interna

P = Procedimento armazenado SQL

PC = Assembly (CLR) stored-procedure

PG = Guia de plano

PK = Restrição PRIMARY KEY

R = Regra (estilo antigo, autônomo)

RF = Procedimento de filtro de replicação

S = Tabela base do sistema

SN = Sinônimo

SO = Objeto de sequência

U = Tabela (definida pelo usuário)

V = Exibição

EC = Restrição de borda



Aplica-se a: SQL Server 2012 (11.x) e posterior.

SQ = Fila de serviço

TA = Gatilho DML de assembly (CLR)

TF = Função com valor de tabela SQL

TR = Gatilho DML de SQL

TT = Tipo de tabela

UQ = Restrição UNIQUE

X = Procedimento armazenado estendido



Aplica-se a: SQL Server 2014 (12.x) e posterior, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System).

ST = STATS_TREE



Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System).

ET = Tabela Externa
type_desc nvarchar(60) Descrição do tipo de objeto:

AGGREGATE_FUNCTION

CHECK_CONSTRAINT

CLR_SCALAR_FUNCTION

CLR_STORED_PROCEDURE

CLR_TABLE_VALUED_FUNCTION

CLR_TRIGGER

DEFAULT_CONSTRAINT

EXTENDED_STORED_PROCEDURE

FOREIGN_KEY_CONSTRAINT

INTERNAL_TABLE

PLAN_GUIDE

PRIMARY_KEY_CONSTRAINT

REPLICATION_FILTER_PROCEDURE

RULE

SEQUENCE_OBJECT



Aplica-se a: SQL Server 2012 (11.x) e posterior.

SERVICE_QUEUE

SQL_INLINE_TABLE_VALUED_FUNCTION

SQL_SCALAR_FUNCTION

SQL_STORED_PROCEDURE

SQL_TABLE_VALUED_FUNCTION

SQL_TRIGGER

SYNONYM

SYSTEM_TABLE

TABLE_TYPE

UNIQUE_CONSTRAINT

USER_TABLE

VIEW
create_date datetime A data em que o objeto foi criado.
modify_date datetime A data em que o objeto foi modificado pela última vez com uma instrução ALTER. Se o objeto for uma tabela ou uma exibição, modify_date também será alterado quando um índice na tabela ou exibição for criado ou alterado.
is_ms_shipped bit O objeto é criado por um componente de SQL Server interno.
is_published bit O objeto é publicado.
is_schema_published bit Apenas o esquema do objeto é publicado.

Comentários

Você pode aplicar as funções internas OBJECT_ID, OBJECT_NAME e OBJECTPROPERTY() aos objetos mostrados em sys.objects.

Há uma versão desse modo de exibição com o mesmo esquema, chamado sys.system_objects, que mostra objetos do sistema. Há outra exibição chamada sys.all_objects que mostra objetos do sistema e do usuário. Todas as três exibições do catálogo têm a mesma estrutura.

Nesta versão do SQL Server, um índice estendido, como um índice XML ou índice espacial, é considerado uma tabela interna em sys.objects (tipo = TI e type_desc = INTERNAL_TABLE). Para um índice estendido:

  • name é o nome interno da tabela de índice.

  • parent_object_id é o object_id da tabela base.

  • As colunas is_ms_shipped, is_published e is_schema_published são definidas como 0.

Exibições úteis do sistema relacionadas
Os subconjuntos dos objetos podem ser exibidos usando exibições do sistema para um tipo específico de objeto, como:

Permissões

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplos

a. Retornando todos os objetos que foram modificados nos últimos N dias

Antes de executar a consulta a seguir, substitua <database_name> e <n_days> por valores válidos.

USE <database_name>;  
GO  
SELECT name AS object_name   
  ,SCHEMA_NAME(schema_id) AS schema_name  
  ,type_desc  
  ,create_date  
  ,modify_date  
FROM sys.objects  
WHERE modify_date > GETDATE() - <n_days>  
ORDER BY modify_date;  
GO  

B. Retornando os parâmetros para uma função ou procedimento armazenado especificado

Antes de executar a consulta a seguir, substitua <database_name> e <schema_name.object_name> por nomes válidos.

USE <database_name>;  
GO  
SELECT SCHEMA_NAME(schema_id) AS schema_name  
    ,o.name AS object_name  
    ,o.type_desc  
    ,p.parameter_id  
    ,p.name AS parameter_name  
    ,TYPE_NAME(p.user_type_id) AS parameter_type  
    ,p.max_length  
    ,p.precision  
    ,p.scale  
    ,p.is_output  
FROM sys.objects AS o  
INNER JOIN sys.parameters AS p ON o.object_id = p.object_id  
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')  
ORDER BY schema_name, object_name, p.parameter_id;  
GO  

C. Retornando todas as funções definidas pelo usuário em um banco de dados

Antes de executar a consulta a seguir, substitua <database_name> pelo nome de um banco de dados válido.

USE <database_name>;  
GO  
SELECT name AS function_name   
  ,SCHEMA_NAME(schema_id) AS schema_name  
  ,type_desc  
  ,create_date  
  ,modify_date  
FROM sys.objects  
WHERE type_desc LIKE '%FUNCTION%';  
GO  

D. Retornando o proprietário de cada objeto em um esquema.

Antes de executar a consulta a seguir, substitua todas as ocorrências de <database_name> e <schema_name> por nomes válidos.

USE <database_name>;  
GO  
SELECT 'OBJECT' AS entity_type  
    ,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name  
    ,name   
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'  
UNION   
SELECT 'TYPE' AS entity_type  
    ,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name  
    ,name   
FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>'   
UNION  
SELECT 'XML SCHEMA COLLECTION' AS entity_type   
    ,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name  
    ,xsc.name   
FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s  
    ON s.schema_id = xsc.schema_id  
WHERE s.name = '<schema_name>';  
GO  

Consulte Também

Exibições do Catálogo (Transact-SQL)
sys.all_objects (Transact-SQL)
sys.system_objects (Transact-SQL)
sys.triggers (Transact-SQL)
Exibições do catálogo de objeto (Transact-SQL)
Consultando as perguntas frequentes do catálogo do sistema do SQL Server
sys.internal_tables (Transact-SQL)