Dela via


OBJECT_SCHEMA_NAME (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Returnerar databasschemanamnet för schemaomfattande objekt. En lista över schemaomfattande objekt finns i sys.objects (Transact-SQL).

Transact-SQL syntaxkonventioner

Syntax

OBJECT_SCHEMA_NAME ( object_id [, database_id ] )  

Arguments

object_id

ID:t för det objekt som ska användas. object_id är int och antas vara ett schemaomfattande objekt i den angivna databasen eller i den aktuella databaskontexten.

database_id

ID:t för databasen där objektet ska letas upp. database_id är int.

Returtyper

sysname

Exceptions

Returnerar NULL vid fel eller om en anropare inte har behörighet att visa objektet. Om måldatabasen har alternativet AUTO_CLOSE inställt på PÅ öppnar funktionen databasen.

En användare kan bara visa metadata för skyddsbara filer som användaren äger eller som användaren har beviljats behörighet för. Inbyggda funktioner för metadatautsändande som OBJECT_SCHEMA_NAME kan returnera NULL om användaren inte har någon behörighet för objektet. Mer information finns i Konfiguration av synlighet för metadata.

Permissions

Kräver ALLA behörigheter för objektet. Om du vill ange ett databas-ID krävs också CONNECT-behörighet till databasen, eller så måste gästkontot vara aktiverat.

Anmärkningar

Systemfunktioner kan användas i urvalslistan, i WHERE-satsen och var som helst där ett uttryck tillåts. Mer information finns i Uttryck och WHERE.

Resultatuppsättningen som returneras av den här systemfunktionen använder sortering av den aktuella databasen.

Om database_id inte anges förutsätter SQL Server Database Engine att det object_id finns i kontexten för den aktuella databasen. En fråga som refererar till en i en object_id annan databas returnerar NULL eller felaktiga resultat. I följande fråga är till exempel kontexten för den aktuella databasen AdventureWorks2022. Databasmotorn försöker returnera ett objektschemanamn för den angivna object_id i den aktuella databasen i stället för den databas som anges i FROM-satsen i frågan. Därför returneras felaktig information.

SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)  
FROM master.sys.objects;  

I följande exempel anges databas-ID för master databasen i OBJECT_SCHEMA_NAME funktionen och rätt resultat returneras.

SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name  
FROM master.sys.objects;   

Examples

A. Returnera objektets schemanamn och objektnamn

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

I följande exempel returneras objektets schemanamn, objektnamn och SQL-text för alla cachelagrade frågeplaner som inte är ad hoc- eller förberedda instruktioner.

SELECT DB_NAME(st.dbid) AS database_name,   
    OBJECT_SCHEMA_NAME(st.objectid, st.dbid) AS schema_name,  
    OBJECT_NAME(st.objectid, st.dbid) AS object_name,   
    st.text AS query_statement  
FROM sys.dm_exec_query_stats AS qs  
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st  
WHERE st.objectid IS NOT NULL;  
GO  

B. Returnera objektnamn i tre delar

I följande exempel returneras databasen, schemat och objektnamnet för alla objekt i den aktuella databaskontexten.

SELECT QUOTENAME(DB_NAME(db_id()))   
    + N'.'   
    + QUOTENAME(OBJECT_SCHEMA_NAME(object_id, db_id()))   
    + N'.'   
    + QUOTENAME(OBJECT_NAME(object_id, db_id()))  
    , *   
FROM sys.objects;
GO  

I följande exempel returneras databasen, schemat och objektnamnet tillsammans med alla andra kolumner i den sys.dm_db_index_operational_stats dynamiska hanteringsvyn för alla objekt i alla databaser.

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SELECT QUOTENAME(DB_NAME(database_id))   
    + N'.'   
    + QUOTENAME(OBJECT_SCHEMA_NAME(object_id, database_id))   
    + N'.'   
    + QUOTENAME(OBJECT_NAME(object_id, database_id))  
    , *   
FROM sys.dm_db_index_operational_stats(null, null, null, null);  
GO  

Nästa steg