sys.objects (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric

Innehåller en rad för varje användardefinierat, schema-scoped objekt som skapas i en databas, inklusive inbyggt kompilerade skalär användardefinierade funktioner.

Mer information finns i Skalär User-Defined Functions för In-Memory OLTP.

Note

sys.objects visar inte DDL-triggers, eftersom de inte är schema-scoped. Alla triggers, både DML och DDL, finns i sys.triggers. sys.triggers stöder en blandning av namnbegränsningsregler för olika typer av triggers.

Kolumnnamn Datatyp Description
name sysname Objektnamn.
object_id int Objektidentifieringsnummer. Är unik i en databas.
principal_id int ID för den enskilda ägaren, om det skiljer sig från schemats ägare. Som standard ägs schemainnehållna objekt av schemaägaren. Dock kan en alternativ ägare anges genom att använda uttalandet ALTER AUTHORIZATION för att byta ägare.

NULL Om det inte finns någon alternativ individuell ägare.

Är NULL om objekttypen är ett av följande värden:

C = Kontrollbegränsning
D = Standard (begränsning eller fristående)
F = Främmande nyckelbegränsning
PK = Primärnyckelbegränsning
R = Regel (gammaldags stil, fristående)
TA = Monterings- (CLR-integrations) trigger
TR = SQL-trigger
UQ = Unik begränsning
EC = Kantbegränsning
schema_id int ID för schemat som objektet ingår i.

Schema-scoped systemobjekt finns alltid i systemet eller INFORMATION_SCHEMA scheman.
parent_object_id int ID för objektet som detta objekt tillhör.

0 = Inte ett barnobjekt.
type char(2) Objekttyp:

AF = Aggregerad funktion (CLR)
C = Kontrollbegränsning
D = Standard (begränsning eller fristående)
F = Främmande nyckelbegränsning
FN = SQL-skalärfunktion
FS = Assembly (CLR) skalärfunktion
FT = Assembly (CLR) tabellvärdesfunktion
IF = SQL inline tabellvärdesfunktion (TVF)
IT = Intern tabell
P = SQL-lagrad procedur
PC = Assembly (CLR) lagrad procedur
PG = Planguide
PK = Primärnyckelbegränsning
R = Regel (gammaldags stil, fristående)
RF = Replikationsfilter-procedur
S = Systembastabell
SN = Synonym
SO = Sekvensobjekt
U = Tabell (användardefinierad)
V = Vy

Applies to: SQL Server 2012 (11.x) och senare versioner

SQ = Tjänstekö
TA = Assembly (CLR) DML-trigger
TF = SQL tabellvärd-funktion (TVF)
TR = SQL DML-trigger
TT = Tabelltyp
UQ = unik begränsning
X = Utökad lagrad procedur

Gäller för: SQL Server 2014 (12.x) och senare versioner, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

ST = Statistikträd

Gäller för: SQL Server 2016 (13.x) och senare versioner, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

ET = Extern tabell

Gäller för: SQL Server 2017 (14.x) och senare versioner, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

EC = Kantbegränsning
type_desc nvarchar(60) Beskrivning av objekttypen:

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 Datum då objektet skapades.
modify_date datetime Datum då objektet senast modifierades genom att använda ett ALTER uttalande. Om objektet är en tabell eller en vy ändras modify_date också när ett index i tabellen eller vyn skapas eller ändras.
is_ms_shipped bit Objekt skapas av en intern SQL Server-komponent.
is_published bit Objektet publiceras.
is_schema_published bit Endast schemat för objektet publiceras.

Remarks

Du kan tillämpa funktionerna OBJECT_ID,OBJECT_NAME och OBJECTPROPERTY på objekten som visas i sys.objects.

Det finns en version av denna vy med samma schema, kallad sys.system_objects, som visar systemobjekt. En annan vy, kallad sys.all_objects, visar både system- och användarobjekt. Alla tre katalogvyer har samma struktur.

I denna version av SQL Server betraktas ett utökat index, såsom ett XML-index eller rumsligt index, som en intern tabell i sys.objects (type är IT, och type_desc är INTERNAL_TABLE). För ett utökat index:

  • name är det interna namnet på indextabellen
  • parent_object_idär bastabellen object_id
  • is_ms_shipped, is_published, och is_schema_published kolumnerna sätts till 0

Delmängder av objekten kan ses genom att använda systemvyer för en specifik typ av objekt, såsom:

Permissions

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.

Examples

A. Lämna tillbaka alla objekt som modifierats under de senaste N dagarna

Innan du kör följande fråga, ersätt <database_name> och <n_days> med giltiga värden.

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. Returnera parametrarna för en specificerad lagrad procureur eller funktion

Innan du kör följande fråga, ersätt <database_name> och <schema_name.object_name> med giltiga namn.

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. Returnera alla användardefinierade funktioner i en databas

Innan du kör följande fråga, ersätt <database_name> med ett giltigt databasnamn.

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. Returnera ägaren av varje objekt i ett schema

Innan du kör följande fråga, ersätt alla förekomster av <database_name> och <schema_name> med giltiga namn.

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