sys.objects (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL 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 proprietario alternativo usando l'istruzione per modificare la ALTER AUTHORIZATION proprietà.NULL se non esiste un proprietario individuale alternativo.Se NULL il tipo di oggetto è uno dei valori seguenti:C = Vincolo CheckD = Valore predefinito (vincolo o autonomo)F = Vincolo di chiave esternaPK = Vincolo di chiave primariaR = Regola (vecchio stile, autonomo)TA = Trigger assembly (integrazione CLR)TR = Trigger SQLUQ = Vincolo univocoEC = Vincolo arco |
schema_id |
int | ID dello schema che contiene l'oggetto. Gli oggetti di sistema con ambito schema sono sempre contenuti negli schemi o INFORMATION_SCHEMA sys. |
parent_object_id |
int | ID dell'oggetto a cui appartiene l'oggetto.0 = Non un oggetto figlio. |
type |
char(2) | Tipo di oggetto:AF = Funzione di aggregazione (CLR)C = Vincolo CheckD = Valore predefinito (vincolo o autonomo)F = Vincolo di chiave esternaFN = Funzione scalare SQLFS = Funzione scalare dell'assembly (CLR)FT = Funzione con valori di tabella assembly (CLR)IF = Funzione inline con valori di tabella SQL (TVF)IT = Tabella internaP = Stored procedure SQLPC = Stored procedure assembly (CLR)PG = Guida di pianoPK = Vincolo di chiave primariaR = Regola (vecchio stile, autonomo)RF = Replication-filter-procedureS = Tabella di base di sistemaSN = SinonimoSO = Oggetto SequenzaU = Tabella (definita dall'utente)V = VisualizzazioneSi applica a: SQL Server 2012 (11.x) e versioni successive SQ = Coda del servizioTA = Trigger DML assembly (CLR)TF = SQL table-valued-function (TVF)TR = Trigger DML SQLTT = Tipo di tabellaUQ = vincolo univocoX = Stored procedure estesaSi applica a: SQL Server 2014 (12.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, Piattaforma di analisi (PDW) ST = Albero delle statisticheSi applica a: SQL Server 2016 (13.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, Piattaforma di analisi (PDW) ET = Tabella esternaSi applica a: SQL Server 2017 (14.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, Piattaforma di analisi (PDW) EC = Vincolo 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 dell'oggetto tramite 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. Un'altra visualizzazione, denominata sys.all_objects, 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
(type
è IT
e type_desc
è INTERNAL_TABLE
). Per un indice esteso:
name
è il nome interno della tabella dell'indiceparent_object_id
è l'oggettoobject_id
della tabella di baseis_ms_shipped
Le colonne ,is_published
eis_schema_published
sono impostate su0
Viste di sistema 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
INNER JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO