Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Şema kapsamlı nesneler için veritabanı nesne adını döndürür. Şema kapsamlı nesnelerin listesi için bkz. sys.objects (Transact-SQL).
Transact-SQL söz dizimi kuralları
Sözdizimi
OBJECT_NAME ( object_id [, database_id ] )
Tartışmalar
object_id
Kullanılacak nesnenin kimliğidir.
object_idint'dir ve belirtilen veritabanında veya geçerli veritabanı bağlamında şema kapsamlı bir nesne olduğu varsayılır.
database_id
Nesnenin aranacağı veritabanının kimliğidir. database_idint.
Dönüş Türleri
sysname
Özel durumlar
Hata durumunda veya çağıranın nesneyi görüntüleme izni yoksa NULL döndürür. Hedef veritabanında AUTO_CLOSE seçeneği AÇIK olarak ayarlandıysa, işlev veritabanını açar.
Bir kullanıcı yalnızca kullanıcıya ait olan veya kullanıcıya izin verilen güvenli hale getirilebilir öğeler meta verilerini görüntüleyebilir. Bu, OBJECT_NAME gibi meta veri yayan yerleşik işlevlerin, kullanıcının nesne üzerinde herhangi bir izni yoksa NULL döndürebileceği anlamına gelir. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .
İzinler
Nesne üzerinde ANY izni gerektirir. Veritabanı kimliği belirtmek için veritabanına BAĞLANMA izni de gerekir veya konuk hesabı etkinleştirilmelidir.
Açıklamalar
Sistem işlevleri seçme listesinde, WHERE yan tümcesinde ve bir ifadeye izin verilen her yerde kullanılabilir. Daha fazla bilgi için bkz. İfadeler ve WHERE.
Bu sistem işlevi tarafından döndürülen değer geçerli veritabanının harmanlamasını kullanır.
Varsayılan olarak, SQL Server Veritabanı Altyapısı object_id geçerli veritabanı bağlamında olduğunu varsayar. Başka bir veritabanındaki bir object_id başvuran sorgu NULL veya yanlış sonuçlar döndürür. Örneğin, aşağıdaki sorguda mevcut veritabanının bağlamı AdventureWorks2025'tir. Veritabanı Altyapısı, sorgunun FROM yan tümcesinde belirtilen veritabanı yerine bu veritabanında belirtilen nesne kimliği için bir nesne adı döndürmeye çalışır. Bu nedenle, yanlış bilgiler döndürülür.
USE AdventureWorks2022;
GO
SELECT DISTINCT OBJECT_NAME(object_id)
FROM master.sys.objects;
GO
Bir veritabanı kimliği belirterek nesne adlarını başka bir veritabanı bağlamında çözümleyebilirsiniz. Aşağıdaki örnek, işlevdeki master veritabanının OBJECT_SCHEMA_NAME veritabanı kimliğini belirtir ve doğru sonuçları döndürür.
USE AdventureWorks2022;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
GO
Örnekler
A. WHERE yan tümcesinde OBJECT_NAME kullanma
Aşağıdaki örnek, deyiminin sys.objects yan tümcesinde tarafından OBJECT_NAME belirtilen nesne için katalog görünümünden WHERESELECT sütunlar döndürür.
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. Nesne şema adını ve nesne adını döndürme
Aşağıdaki örnek, geçici veya hazırlanmış deyimler olmayan tüm önbelleğe alınmış sorgu planları için nesne şeması adını, nesne adını ve SQL metnini döndürür.
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. Üç bölümlü nesne adlarını döndürme
Aşağıdaki örnek, tüm veritabanlarındaki tüm nesneler için dinamik yönetim görünümündeki sys.dm_db_index_operational_stats diğer tüm sütunlarla birlikte veritabanı, şema ve nesne adını döndürür.
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
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
D. WHERE yan tümcesinde OBJECT_NAME kullanma
Aşağıdaki örnek, deyiminin sys.objects yan tümcesinde tarafından OBJECT_NAME belirtilen nesne için katalog görünümünden WHERESELECT sütunlar döndürür. (Nesne numaranız (aşağıdaki örnekte 274100017) farklı olacaktır. Bu örneği test etmek için veritabanınızda yürüterek SELECT name, object_id FROM sys.objects; geçerli bir nesne numarası arayın.)
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(274100017);
Ayrıca Bkz.
Meta Veri İşlevleri (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL)