Nesne_adı (Transact-SQL)
Şema kapsamlı nesne veritabanı nesnesinin adını döndürür.Şema kapsamlı nesne listesi için bkz: sys.Objects (Transact-SQL).
Sözdizimi
OBJECT_NAME ( object_id [, database_id ] )
Bağımsız değişkenler
object_id
Kullanılacak nesnenin kimliğidir.object_idİş int ve kabul edilir olmasına şema kapsamlı nesne belirtilen veritabanı veya geçerli veritabanı bağlamı.database_id
Veritabanı nesnesi Bakılacak yerde kimliğidir.database_idis int.
Dönüş Türleri
sysname
Kural dışı durumlar
Hata null veya arayan bir nesneyi görüntüleme iznine sahip olmadığında verir.hedef veritabanı auto_close seçeneği küme açık varsa, işlev veritabanı açılır.
Bir kullanıcı yalnızca, kullanıcının sahip olduğu veya kullanıcı izni verildi güvenli hale Getirilebilenler meta veriler görüntüleyebilirsiniz.Yani o meta veriler-yayma, yerleşik işlevler gibi nesne_adı, kullanıcı nesnesi üzerinde herhangi bir izni yoksa null döndürebilir.Daha fazla bilgi için, bkz. Meta veri görünürlük yapılandırma ve Meta veri görünürlük sorun giderme.
İzinler
Nesne üzerindeki izinleri gerektirir.Veritabanı kimliği belirlemek için veritabanına bağlantı izin de gereklidir veya Konuk hesabı etkin olması gerekir.
Açıklamalar
Sistem işlevleri seçme listesinde where yan tümceiçinde kullanılan ve bir ifade herhangi bir izin verilmez.Daha fazla bilgi için bkz: ifadeler ve burada.
Bu sistem işlev tarafından döndürülen değeri, geçerli veritabanı harmanlama kullanır.
Varsayılan olarak, SQL Server Veritabanı Altyapısı varsayar, object_id olan bağlamında geçerli veritabanı.Başvuran bir sorgu bir object_id başka bir veritabanında boş ya da yanlış sonuçlardöndürüyor.Örneğin, aşağıdaki sorguda geçerli veritabanı bağlamında olduğu AdventureWorks2008R2.Veritabanı Altyapısı Sorgu. from yan tümce belirtilen veritabanı yerine, veritabanındaki belirtilen nesne kimliği için nesne adı dönmek çalışırBu nedenle, yanlış bilgi verilir.
USE AdventureWorks2008R2;
GO
SELECT DISTINCT OBJECT_NAME(object_id)
FROM master.sys.objects;
GO
Veritabanı kimliği belirterek başka bir veritabanı bağlamında nesne adlarını çözümleyebilirAşağıdaki örnek veritabanı kimliği belirtir master , veritabanı OBJECT_SCHEMA_NAME işlev ve doğru sonuçlarverir.
USE AdventureWorks2008R2;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
GO
Örnekler
A.Nesne_adı where yan tümcekullanarak
Aşağıdaki örnek sütunlarından verir sys.objects Katalog görünümü nesnenin belirtilen tarafından OBJECT_NAME , WHERE yan tümce SELECT deyim.
USE AdventureWorks2008R2;
GO
DECLARE @MyID int;
SET @MyID = (SELECT OBJECT_ID('AdventureWorks2008R2.Production.Product',
'U'));
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@MyID);
GO
B.Nesnenin şema adı ve nesne adını döndürme
Aşağıdaki örnek, nesne şema adı, nesne adı ve ad hoc veya hazırlanan deyimleri değildir tüm önbelleğe alınan sorgu planlarını SQL metni verir.
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ı döndüren
Aşağıdaki örnek veritabanı, şema ve nesne adı ile birlikte diğer tüm sütunlarda döndürür sys.dm_db_index_operational_stats dinamik yönetim görünümü tüm veritabanlarındaki tüm nesneler için.
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