sys.objects (Transact-SQL)
Si applica a: SQL Server (tutte le versioni supportate)
database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Parallel Data Warehouse
Contiene una riga per ogni oggetto definito dall'utente con ambito schema creato all'interno di un database, inclusa la funzione scalare definita dall'utente compilata in modo nativo.
Per altre informazioni, vedere Funzioni scalari definite dall'utente per OLTP in memoria.
Nota
sys.objects non visualizza trigger DDL. Questi oggetti, infatti, non sono definiti a livello di ambito di schema. Tutti i trigger, DML e DDL, si trovano in sys.triggers. sys.triggers supporta una combinazione di regole di 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 edge |
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 EC = Vincolo edge 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 strumenti analitici (PDW). ST = STATS_TREE Si applica a: SQL Server 2016 (13.x) e versioni successive, database SQL di Azure, Azure Synapse Analytics, Piattaforma di strumenti analitici (PDW). ET = Tabella esterna |
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 EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT Si applica a: SQL Server 2012 (11.x) e versioni successive. 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 | 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 anche quando viene creato o modificato un indice nella tabella o nella vista. |
is_ms_shipped | bit | Oggetto creato da un componente di SQL Server interno. |
is_published | bit | L'oggetto viene pubblicato. |
is_schema_published | bit | Viene pubblicato solo lo schema dell'oggetto. |
Commenti
È possibile applicare le funzioni 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, è 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'indice.
parent_object_id corrisponde a object_id della tabella di base.
Le colonne is_ms_shipped, is_published e is_schema_published sono impostate su 0.
Viste di sistema utili correlate
I subset degli oggetti possono essere visualizzati usando le visualizzazioni 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. Restituzione di 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. Restituzione dei parametri per una stored procedure o una funzione specifica
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. Restituzione di 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. Restituzione del 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
Vedere anche
Viste del catalogo (Transact-SQL)
sys.all_objects (Transact-SQL)
sys.system_objects (Transact-SQL)
sys.triggers (Transact-SQL)
Viste del catalogo dell'oggetto (Transact-SQL)
Domande frequenti sull'esecuzione SQL Server catalogo di sistema
sys.internal_tables (Transact-SQL)