sys.objects (Transact-SQL)
Si applica a:SQL Server
Database SQL di
Azure Istanza
gestita di SQL di Azure Azure Synapse Analytics
Platform System (PDW)
SQL Endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Contiene una riga per ogni oggetto con ambito schema definito dall'utente creato all'interno di un database, incluse le funzioni scalari compilate in modo nativo.
Per altre informazioni, vedere Funzioni scalari definite dall'utente per OLTP in memoria.
Nota
sys.objects
non mostra i trigger DDL, perché non sono con ambito schema. Tutti i trigger, DML e DDL, sono disponibili in sys.triggers. sys.triggers
supporta una combinazione di regole di definizione dell'ambito dei nomi per i vari tipi di trigger.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
name | sysname | Nome dell'oggetto. |
object_id | int | Numero di identificazione dell'oggetto. Valore univoco all'interno di un database. |
principal_id | int | ID del singolo proprietario, se diverso dal proprietario dello schema. Per impostazione predefinita, gli oggetti contenuti nello schema appartengono al proprietario dello schema stesso. È tuttavia possibile specificare un altro proprietario modificando la proprietà mediante l'istruzione ALTER AUTHORIZATION. È NULL se non esiste un singolo proprietario alternativo. È NULL se il tipo di oggetto è uno dei seguenti: C = vincolo CHECK D = DEFAULT (vincolo o valore autonomo) F = vincolo FOREIGN KEY PK = vincolo PRIMARY KEY R = regola (tipo obsoleto, autonoma) TA = trigger di assembly (integrazione con CLR) TR = trigger SQL UQ = vincolo UNIQUE EC = Vincolo di arco |
schema_id | int | ID dello schema che contiene l'oggetto. Gli oggetti di sistema con ambito costituito dallo schema sono sempre inclusi negli schemi sys o INFORMATION_SCHEMA. |
parent_object_id | int | ID dell'oggetto a cui appartiene l'oggetto. 0 = non è un oggetto figlio. |
tipo | char(2) | Tipo di oggetto: AF = funzione di aggregazione (CLR) C = vincolo CHECK D = DEFAULT (vincolo o valore autonomo) F = vincolo FOREIGN KEY FN = funzione scalare SQL FS = funzione scalare di assembly (CLR) FT = funzione valutata a livello di tabella assembly (CLR) IF = funzione SQL inline valutata a livello di tabella IT = tabella interna P = stored procedure SQL PC = stored procedure di assembly (CLR) PG = guida di piano PK = vincolo PRIMARY KEY R = regola (tipo obsoleto, autonoma) RF = procedura-filtro-replica S = tabella di base di sistema SN = sinonimo SO = oggetto sequenza U = tabella (definita dall'utente) V = vista Si applica a: SQL Server 2012 (11.x) e versioni successive. SQ = coda di servizio TA = trigger DML assembly (CLR) TF = funzione valutata a livello di tabella SQL TR = trigger DML SQL TT = tipo tabella UQ = vincolo UNIQUE X = stored procedure estesa Si applica a: SQL Server 2014 (12.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, piattaforma di analisi (PDW). ST = STATS_TREE Si applica a: SQL Server 2016 (13.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, piattaforma di analisi (PDW). ET = Tabella esterna Si applica a: SQL Server 2017 (14.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, piattaforma di analisi (PDW). EC = Vincolo di arco |
type_desc | nvarchar(60) | Descrizione del tipo di oggetto: 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 | Data di creazione dell'oggetto. |
modify_date | datetime | Data dell'ultima modifica apportata all'oggetto mediante un'istruzione ALTER. Se l'oggetto è una tabella o una vista, modify_date cambia anche quando viene creato o modificato un indice nella tabella o nella vista. |
is_ms_shipped | bit | L'oggetto viene creato da un componente interno di SQL Server. |
is_published | bit | L'oggetto viene pubblicato. |
is_schema_published | bit | Viene pubblicato solo lo schema dell'oggetto. |
Osservazioni:
È possibile applicare le funzioni predefinite OBJECT_ID, OBJECT_NAME e OBJECTPROPERTY() agli oggetti visualizzati in sys.objects
.
È disponibile una versione di questa vista con lo stesso schema, denominato sys.system_objects, che mostra gli oggetti di sistema. Esiste un'altra visualizzazione denominata sys.all_objects che mostra sia gli oggetti di sistema che gli oggetti utente. Le tre viste del catalogo hanno tutte la stessa struttura.
In questa versione di SQL Server, un indice esteso, ad esempio un indice XML o un indice spaziale, viene considerato una tabella interna in sys.objects
(tipo = IT e type_desc = INTERNAL_TABLE). Per un indice esteso:
name
è il nome interno della tabella dell'indice.parent_object_id
è l'oggettoobject_id
della tabella di base.is_ms_shipped
Leis_published
colonne eis_schema_published
sono impostate su0
.
Visualizzazioni di sistema utili correlate
I subset degli oggetti possono essere visualizzati usando le viste di sistema per un tipo specifico di oggetto, ad esempio:
Autorizzazioni
La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.
Esempi
R. Restituisce tutti gli oggetti modificati negli ultimi N giorni
Prima di eseguire la query seguente, sostituire <database_name>
e <n_days>
con valori validi.
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. Restituire i parametri per una stored procedure o una funzione specificata
Prima di eseguire la query seguente, sostituire <database_name>
e <schema_name.object_name>
con nomi validi.
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. Restituire tutte le funzioni definite dall'utente in un database
Prima di eseguire la query seguente, sostituire <database_name>
con un nome di database valido.
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. Restituire il proprietario di ogni oggetto in uno schema
Prima di eseguire la query seguente, sostituire tutte le occorrenze di <database_name>
e <schema_name>
con nomi validi.
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