Aracılığıyla paylaş


object_schema_name (Transact-SQL)

Şema kapsamlı nesne veritabanı şeması adını döndürür.Şema kapsamlı nesne listesi için bkz: sys.Objects (Transact-SQL).

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

OBJECT_SCHEMA_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 object_schema_name, 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 sonuç kümesi , geçerli veritabanı harmanlama kullanır.

database_id Belirtilmezse, 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ı Belirtilen nesne kimliği sorgusu from yan tümce belirtilen veritabanı yerine, veritabanındaki Nesne şema adı dönmek çalışırBu nedenle, yanlış bilgi verilir.

USE AdventureWorks2008R2;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)
FROM master.sys.objects;
GO

Aş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.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_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.Üç 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