sys.objects (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse 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 Check
D = Valore predefinito (vincolo o autonomo)
F = Vincolo di chiave esterna
PK = Vincolo di chiave primaria
R = Regola (vecchio stile, autonomo)
TA = Trigger assembly (integrazione CLR)
TR = Trigger SQL
UQ = Vincolo univoco
EC = 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 Check
D = Valore predefinito (vincolo o autonomo)
F = Vincolo di chiave esterna
FN = Funzione scalare SQL
FS = Funzione scalare dell'assembly (CLR)
FT = Funzione con valori di tabella assembly (CLR)
IF = Funzione inline con valori di tabella SQL (TVF)
IT = Tabella interna
P = Stored procedure SQL
PC = Stored procedure assembly (CLR)
PG = Guida di piano
PK = Vincolo di chiave primaria
R = Regola (vecchio stile, autonomo)
RF = Replication-filter-procedure
S = Tabella di base di sistema
SN = Sinonimo
SO = Oggetto Sequenza
U = Tabella (definita dall'utente)
V = Visualizzazione

Si applica a: SQL Server 2012 (11.x) e versioni successive

SQ = Coda del servizio
TA = Trigger DML assembly (CLR)
TF = SQL table-valued-function (TVF)
TR = Trigger DML SQL
TT = Tipo di tabella
UQ = vincolo univoco
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 = Albero delle statistiche

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 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 è ITe type_desc è INTERNAL_TABLE). Per un indice esteso:

  • name è il nome interno della tabella dell'indice
  • parent_object_id è l'oggetto object_id della tabella di base
  • is_ms_shippedLe colonne , is_publishede is_schema_published sono impostate su 0

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 un utente è proprietario o a cui l'utente ha concesso alcune 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