Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Retourneert de naam van het databaseobject voor objecten met schemabereik. Zie sys.objects (Transact-SQL) voor een lijst met objecten met schemabereik.
Transact-SQL syntaxis-conventies
Syntaxis
OBJECT_NAME ( object_id [, database_id ] )
Argumenten
object_id
Is de id van het object dat moet worden gebruikt.
object_id is int en wordt ervan uitgegaan dat het een schemabereikobject is in de opgegeven database of in de huidige databasecontext.
database_id
Is de id van de database waar het object moet worden opgezoekd. database_id is int.
Retourtypen
sysname
Uitzonderingen
Retourneert NULL bij fout of als een aanroeper niet gemachtigd is om het object weer te geven. Als voor de doeldatabase de optie AUTO_CLOSE is ingesteld op AAN, wordt de database door de functie geopend.
Een gebruiker kan alleen de metagegevens van beveiligbare items bekijken waarvan de gebruiker eigenaar is of waarvoor de gebruiker is gemachtigd. Dit betekent dat door metagegevens verzonden ingebouwde functies, zoals OBJECT_NAME NULL kunnen retourneren als de gebruiker geen machtiging voor het object heeft. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.
Machtigingen
Vereist ANY-machtigingen voor het object. Als u een database-id wilt opgeven, moet u ook verbinding maken met de database of moet het gastaccount zijn ingeschakeld.
Opmerkingen
Systeemfuncties kunnen worden gebruikt in de selectielijst, in de WHERE-component en overal waar een expressie is toegestaan. Zie Expressies en WHERE voor meer informatie.
De waarde die door deze systeemfunctie wordt geretourneerd, maakt gebruik van de sortering van de huidige database.
Standaard gaat de SQL Server Database Engine ervan uit dat object_id zich in de context van de huidige database bevindt. Een query die verwijst naar een object_id in een andere database retourneert NULL of onjuiste resultaten. In de volgende query is de context van de huidige database bijvoorbeeld AdventureWorks2022. De database-engine probeert een objectnaam te retourneren voor de opgegeven object-id in die database in plaats van de database die is opgegeven in de FROM-component van de query. Daarom wordt onjuiste informatie geretourneerd.
USE AdventureWorks2022;
GO
SELECT DISTINCT OBJECT_NAME(object_id)
FROM master.sys.objects;
GO
U kunt objectnamen omzetten in de context van een andere database door een database-id op te geven. In het volgende voorbeeld wordt de database-id voor de master database in de OBJECT_SCHEMA_NAME functie opgegeven en worden de juiste resultaten geretourneerd.
USE AdventureWorks2022;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
GO
Voorbeelden
Eén. OBJECT_NAME gebruiken in een WHERE-component
In het volgende voorbeeld worden kolommen geretourneerd uit de sys.objects catalogusweergave voor het object dat is OBJECT_NAME opgegeven in de WHERE component van de SELECT instructie.
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. De objectschemanaam en objectnaam retourneren
In het volgende voorbeeld wordt de objectschemanaam, objectnaam en SQL-tekst geretourneerd voor alle in de cache opgeslagen queryplannen die geen ad-hoc- of voorbereide instructies zijn.
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. Namen van drie delen van objecten retourneren
In het volgende voorbeeld worden de database, het schema en de objectnaam samen met alle andere kolommen in de sys.dm_db_index_operational_stats dynamische beheerweergave geretourneerd voor alle objecten in alle databases.
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
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
D. OBJECT_NAME gebruiken in een WHERE-component
In het volgende voorbeeld worden kolommen geretourneerd uit de sys.objects catalogusweergave voor het object dat is OBJECT_NAME opgegeven in de WHERE component van de SELECT instructie. (Het objectnummer (274100017 in het onderstaande voorbeeld) is anders. Als u dit voorbeeld wilt testen, zoekt u een geldig objectnummer op door deze uit te SELECT name, object_id FROM sys.objects; voeren in uw database.)
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(274100017);
Zie ook
Metagegevensfuncties (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL)