Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
A séma hatókörű objektumok adatbázis-objektumának 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_NAME ( object_id [, database_id ] )
Érvek
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
Kivételek
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 a AUTO_CLOSE beállítás BE értékre van állítva, 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. Ez azt jelenti, hogy a metaadatkibocsátó, beépített függvények, például a OBJECT_NAME null értéket adhatnak vissza, ha a felhasználónak nincs engedélye az objektumra. További információ: Metaadatok láthatóságának konfigurációja.
Engedélyek
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 érték az aktuális adatbázis rendezést használja.
Alapértelmezés szerint az SQL Server adatbázismotor feltételezi, hogy object_id az aktuális adatbázis kontextusában van. Egy másik adatbázisban lévő object_id hivatkozó lekérdezés 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 a megadott objektumazonosító objektumnevét próbálja visszaadni az adatbázisban. Ezért a rendszer helytelen adatokat ad vissza.
USE AdventureWorks2022;
GO
SELECT DISTINCT OBJECT_NAME(object_id)
FROM master.sys.objects;
GO
Egy adatbázis-azonosító megadásával feloldhatja az objektumneveket egy másik adatbázis kontextusában. 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.
USE AdventureWorks2022;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
GO
Példák
Egy. OBJECT_NAME használata WHERE záradékban
Az alábbi példa az sys.objects utasítás záradékában OBJECT_NAME megadott WHERE objektum katalógusnézetének SELECT oszlopait adja vissza.
USE AdventureWorks2022;
GO
DECLARE @MyID INT;
SET @MyID = (SELECT OBJECT_ID('AdventureWorks2022.Production.Product',
'U'));
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@MyID);
GO
B. Az objektumséma nevének és az objektum nevének visszaadása
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_text
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
C. Háromrészes objektumnevek visszaadása
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.
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
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
D. OBJECT_NAME használata WHERE záradékban
Az alábbi példa az sys.objects utasítás záradékában OBJECT_NAME megadott WHERE objektum katalógusnézetének SELECT oszlopait adja vissza. (Az objektum száma (274100017 az alábbi példában) eltérő lesz. A példa teszteléséhez keressen egy érvényes objektumszámot az adatbázisban való végrehajtással SELECT name, object_id FROM sys.objects; .)
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(274100017);
Lásd még:
Metaadatfüggvények (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL)