Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Vrátí název schématu databáze pro objekty s oborem schématu. Seznam objektů vymezených schématem naleznete v tématu sys.objects (Transact-SQL).
Syntaxe
OBJECT_SCHEMA_NAME ( object_id [, database_id ] )
Arguments
object_id
ID objektu, který se má použít. object_id je int a předpokládá se, že se jedná o objekt s oborem schématu v zadané databázi nebo v aktuálním kontextu databáze.
database_id
ID databáze, ve které se má objekt vyhledat. database_id je int.
Návratové typy
sysname
Exceptions
Vrátí hodnotu NULL při chybě nebo pokud volající nemá oprávnění k zobrazení objektu. Pokud má cílová databáze možnost AUTO_CLOSE nastavenou na zapnuto, funkce otevře databázi.
Uživatel může zobrazit pouze metadata zabezpečitelných, která uživatel vlastní nebo na kterých má uživatel udělená oprávnění. Metadata generující předdefinované funkce, jako OBJECT_SCHEMA_NAME je například může vrátit hodnotu NULL, pokud uživatel nemá žádné oprávnění k objektu. Další informace naleznete v tématu Konfigurace viditelnosti metadat.
Povolení
Vyžaduje oprávnění ANY k objektu. Pokud chcete zadat ID databáze, vyžaduje se také oprávnění CONNECT k databázi nebo musí být povolený účet hosta.
Poznámky
Systémové funkce lze použít v seznamu select, v klauzuli WHERE a kdekoli je povolený výraz. Další informace naleznete v tématu Výrazy a WHERE.
Sada výsledků vrácená touto systémovou funkcí používá kolaci aktuální databáze.
Pokud není zadán database_id , databázový stroj SQL Serveru předpokládá, že object_id je v kontextu aktuální databáze. Dotaz, který odkazuje na jinou object_id databázi, vrátí hodnotu NULL nebo nesprávné výsledky. Například v následujícím dotazu je kontext aktuální databáze AdventureWorks2025. Databázový stroj se pokusí vrátit název schématu objektu pro zadané object_id v aktuální databázi místo databáze zadané v klauzuli FROM dotazu. Proto se vrátí nesprávné informace.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)
FROM master.sys.objects;
Následující příklad určuje ID databáze pro master databázi ve OBJECT_SCHEMA_NAME funkci a vrátí správné výsledky.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
Examples
A. Vrácení názvu schématu objektu a názvu objektu
platí pro: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Následující příklad vrátí název schématu objektu, název objektu a text SQL pro všechny plány dotazů v mezipaměti, které nejsou ad hoc nebo připravené příkazy.
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. Vrácení třídílných názvů objektů
Následující příklad vrátí název databáze, schématu a objektu pro všechny objekty v aktuálním kontextu databáze.
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
Následující příklad vrátí název databáze, schématu a objektu spolu se všemi ostatními sloupci v sys.dm_db_index_operational_stats zobrazení dynamické správy pro všechny objekty ve všech databázích.
platí pro: SQL Server
Azure SQL Database
Azure 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