sys.objects (Transact-SQL)
Contém uma linha para cada objeto no escopo do esquema definido pelo usuário que é criado em um banco de dados.
Observação |
---|
sys.objects não mostra gatilhos DDL, pois eles não estão no escopo do esquema. Todos os gatilhos, DML e DDL, são localizados 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. Porém, outro proprietário 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 |
schema_id |
int |
ID do esquema em que o objeto está contido. Os objetos do sistema no escopo do 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. |
type |
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 = Procedimento armazenado de assembly (CLR) 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 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 U = Tabela (definida pelo usuário) UQ = Restrição UNIQUE V = Exibição X = Procedimento armazenado estendido |
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 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 na exibição for criado ou alterado. |
is_ms_shipped |
bit |
O objeto é criado por um componente interno do SQL Server. |
is_published |
bit |
O objeto é publicado. |
is_schema_published |
bit |
Apenas o esquema do objeto é publicado. |
Comentários
É possível aplicar as funções internas OBJECT_ID, OBJECT_NAME e OBJECTPROPERTY() aos objetos mostrados em sys.objects.
Há uma versão desta exibição com o mesmo esquema, chamada sys.system_objects, que mostra os objetos do sistema. Há outra exibição denominada sys.all_objects que mostra os objetos do sistema e de 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 (type = IT e type_desc = INTERNAL_TABLE). Para um índice estendido:
name é o nome interno da tabela de índice.
parent_object_id é a object_id da tabela base.
As colunas is_ms_shipped, is_published e is_schema_published são definidas como 0.
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 Configuração de visibilidade de metadados.
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, o.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
Referência
Exibições de catálogo (Transact-SQL)
sys.all_objects (Transact-SQL)
sys.system_objects (Transact-SQL)
Exibições do catálogo de objeto (Transact-SQL)
sys.internal_tables (Transact-SQL)
Conceitos
Consultando as perguntas frequentes do catálogo do sistema do SQL Server