sys.objects (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sì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)