Megosztás a következőn keresztül:


OBJECT_SCHEMA_NAME (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A séma hatókörű objektumok adatbázisséma-nevét adja vissza. A séma hatókörű objektumok listáját a sys.objects (Transact-SQL) című témakörben találja.

Transact-SQL szintaxis konvenciók

Szemantika

OBJECT_SCHEMA_NAME ( object_id [, database_id ] )  

Arguments

object_id

A használni kívánt objektum azonosítója. object_idint , és azt feltételezi, hogy séma hatókörű objektum a megadott adatbázisban vagy az aktuális adatbázis-környezetben.

database_id

Annak az adatbázisnak az azonosítója, amelyben az objektumot fel kell keresni. database_idint.

Visszatérési típusok

sysname

Exceptions

Null értéket ad vissza hiba esetén, vagy ha a hívó nem rendelkezik engedéllyel az objektum megtekintéséhez. Ha a céladatbázisban be van állítva a AUTO_CLOSE beállítás, a függvény megnyitja az adatbázist.

A felhasználó csak azoknak a biztonságos adatoknak a metaadatait tekintheti meg, amelyek a felhasználó tulajdonában vannak, vagy amelyekhez a felhasználó engedélyt kapott. Metaadatkibocsátó, beépített függvények, például OBJECT_SCHEMA_NAME null értéket adhatnak vissza, ha a felhasználónak nincs engedélye az objektumra. További információ: Metaadatok láthatósági konfigurációja.

Permissions

Bármilyen engedélyre van szükség az objektumon. Az adatbázis-azonosító megadásához connect-engedélyre is szükség van az adatbázishoz, vagy engedélyezni kell a vendégfiókot.

Megjegyzések

A rendszerfüggvények használhatók a kiválasztási listában, a WHERE záradékban, és bárhol, ahol egy kifejezés engedélyezve van. További információ: Kifejezések és HOL.

A rendszerfüggvény által visszaadott eredményhalmaz az aktuális adatbázis rendezést használja.

Ha database_id nincs megadva, az SQL Server adatbázismotor azt feltételezi, hogy object_id az aktuális adatbázis kontextusában van. Egy másik adatbázisban lévő lekérdezés object_id null vagy helytelen eredményt ad vissza. Például a következő lekérdezésben az aktuális adatbázis kontextusa az AdventureWorks2025. Az adatbázismotor a lekérdezés FROM záradékában megadott adatbázis helyett az aktuális adatbázisban megadott object_id objektumséma nevét próbálja visszaadni. Ezért a rendszer helytelen adatokat ad vissza.

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

Az alábbi példa a függvény adatbázis-azonosítóját masterOBJECT_SCHEMA_NAME adja meg, és a megfelelő eredményeket adja vissza.

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

Példák

A. Adja vissza az objektumséma nevét és az objektum nevét

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Az alábbi példa az objektumséma nevét, az objektumnevet és az SQL-szöveget adja vissza az összes olyan gyorsítótárazott lekérdezési tervhez, amely nem alkalmi vagy előkészített utasítás.

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. Háromrészes objektumnevek visszaadása

Az alábbi példa az aktuális adatbázis-környezet összes objektumának adatbázisát, sémáját és objektumnevét adja vissza.

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  

Az alábbi példa visszaadja az adatbázis, a séma és az objektum nevét, valamint a sys.dm_db_index_operational_stats dinamikus felügyeleti nézetben lévő összes többi oszlopot az összes adatbázis összes objektumához.

A következőkre vonatkozik: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  

Következő lépések