OBJECT_SCHEMA_NAME (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
Mengembalikan nama skema database untuk objek dengan cakupan skema. Untuk daftar objek dengan cakupan skema, lihat sys.objects (Transact-SQL).
Catatan
Fungsi OBJECT_SCHEMA_NAME
ini hanya didukung di kumpulan SQL khusus di Azure Synapse Analytics.
Sintaks
OBJECT_SCHEMA_NAME ( object_id [, database_id ] )
Argumen
object_id
ID objek yang akan digunakan. object_id int dan diasumsikan sebagai objek cakupan skema dalam database yang ditentukan, atau dalam konteks database saat ini.
database_id
ID database tempat objek akan dicari. database_id int.
Jenis Kembalian
nama sysname
Pengecualian
Mengembalikan NULL pada kesalahan atau jika penelepon tidak memiliki izin untuk melihat objek. Jika database target memiliki opsi AUTO_CLOSE diatur ke AKTIF, fungsi akan membuka database.
Pengguna hanya dapat melihat metadata yang dapat diamankan yang dimiliki pengguna atau di mana pengguna telah diberikan izin. Fungsi bawaan yang memancarkan metadata seperti OBJECT_SCHEMA_NAME
dapat mengembalikan NULL jika pengguna tidak memiliki izin apa pun pada objek. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Izin
Memerlukan izin APA PUN pada objek. Untuk menentukan ID database, izin CONNECT ke database juga diperlukan, atau akun tamu harus diaktifkan.
Keterangan
Fungsi sistem dapat digunakan dalam daftar pemilihan, dalam klausa WHERE, dan di mana saja ekspresi diizinkan. Untuk informasi selengkapnya, lihat Ekspresi dan WHERE.
Tataan hasil yang dikembalikan oleh fungsi sistem ini menggunakan kolase database saat ini.
Jika database_id tidak ditentukan, Mesin Database SQL Server mengasumsikan bahwa object_id
berada dalam konteks database saat ini. Kueri yang mereferensikan object_id
dalam database lain mengembalikan NULL atau hasil yang salah. Misalnya, dalam kueri berikut, konteks database saat ini adalah AdventureWorks2022. Mesin Database mencoba mengembalikan nama skema objek untuk yang ditentukan object_id
dalam database saat ini alih-alih database yang ditentukan dalam klausa FROM kueri. Oleh karena itu, informasi yang salah dikembalikan.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)
FROM master.sys.objects;
Contoh berikut menentukan ID database untuk master
database dalam OBJECT_SCHEMA_NAME
fungsi dan mengembalikan hasil yang benar.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
Contoh
J. Mengembalikan nama skema objek dan nama objek
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance
Contoh berikut mengembalikan nama skema objek, nama objek, dan teks SQL untuk semua rencana kueri yang di-cache yang bukan pernyataan ad hoc atau pernyataan yang disiapkan.
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. Mengembalikan nama objek tiga bagian
Contoh berikut mengembalikan database, skema, dan nama objek untuk semua objek dalam konteks database saat ini.
SELECT QUOTENAME(DB_NAME(db_id()))
+ N'.'
+ QUOTENAME(OBJECT_SCHEMA_NAME(object_id, db_id()))
+ N'.'
+ QUOTENAME(OBJECT_NAME(object_id, db_id()))
, *
FROM sys.objects;
GO
Contoh berikut mengembalikan database, skema, dan nama objek bersama dengan semua kolom lain dalam sys.dm_db_index_operational_stats
tampilan manajemen dinamis untuk semua objek di semua database.
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance
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