sys.objects (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric
Contém uma linha para cada objeto com escopo de esquema definido pelo usuário que é criado em um banco de dados, incluindo as funções escalares definidas pelo usuário compiladas 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 têm escopo de 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. No entanto, um proprietário alternativo pode ser especificado usando a instrução para alterar a ALTER AUTHORIZATION propriedade.NULL se não houver um proprietário individual alternativo.Is NULL se o tipo de objeto for um dos seguintes valores:C = Verificar restriçãoD = Padrão (restrição ou autônomo)F = Restrição de chave estrangeiraPK = Restrição de chave primáriaR = Regra (estilo antigo, autônomo)TA = Gatilho de montagem (integração CLR)TR = gatilho SQLUQ = Restrição exclusivaEC = Restrição de borda |
schema_id |
int | ID do esquema em que o objeto está contido. Os objetos do sistema com escopo de esquema estão sempre contidos no sys ou INFORMATION_SCHEMA nos esquemas. |
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 agregada (CLR)C = Verificar restriçãoD = Padrão (restrição ou autônomo)F = Restrição de chave estrangeiraFN = Função escalar SQLFS = Função escalar do assembly (CLR)FT = Função com valor de tabela de assembly (CLR)IF = TVF (função com valor de tabela) embutida do SQLIT = Tabela internaP = procedimento armazenado SQLPC = Procedimento armazenado do assembly (CLR)PG = Guia do planoPK = Restrição de chave primáriaR = Regra (estilo antigo, autônomo)RF = Procedimento de filtro de replicaçãoS = Tabela base do sistemaSN = SinônimoSO = Objeto de sequênciaU = Tabela (definida pelo usuário)V = VisualizarAplica-se a: SQL Server 2012 (11.x) e versões posteriores SQ = Fila de serviçoTA = Gatilho DML do assembly (CLR)TF = TVF (função com valor de tabela) SQLTR = gatilho DML do SQLTT = Tipo de tabelaUQ = restrição únicaX = Procedimento armazenado estendidoAplica-se a: SQL Server 2014 (12.x) e versões posteriores, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System) ST = Árvore de estatísticasAplica-se a: SQL Server 2016 (13.x) e versões posteriores, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System) ET = Tabela externaAplica-se a: SQL Server 2017 (14.x) e versões posteriores, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System) EC = Restrição de borda |
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 EDGE_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 TYPE_TABLE UNIQUE_CONSTRAINT USER_TABLE VIEW |
create_date |
datetime | A data em que o objeto foi criado. |
modify_date |
datetime | Data em que o objeto foi modificado pela última vez usando uma ALTER instrução. 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
Você pode aplicar as funções internas OBJECT_ID, OBJECT_NAME e OBJECTPROPERTY aos objetos mostrados no sys.objects
.
Há uma versão dessa exibição com o mesmo esquema, chamada sys.system_objects, que mostra objetos do sistema. Outra exibição, chamada sys.all_objects, 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
(type
is IT
, e type_desc
is INTERNAL_TABLE
). Para um índice estendido:
name
é o nome interno da tabela de índiceparent_object_id
é oobject_id
da tabela baseis_ms_shipped
,is_published
eis_schema_published
as colunas são definidas como0
Exibições 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
R. Retorna 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. Retornar 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. Retornar 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. Retornar 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
INNER JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO