OBJECT_ID (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Mengembalikan nomor identifikasi objek database dari objek dengan cakupan skema.
Penting
Objek yang tidak terlingkup skema, seperti pemicu DDL, tidak dapat dikueri dengan menggunakan OBJECT_ID. Untuk objek yang tidak ditemukan dalam tampilan katalog sys.objects , dapatkan nomor identifikasi objek dengan mengkueri tampilan katalog yang sesuai. Misalnya, untuk mengembalikan nomor identifikasi objek dari pemicu DDL, gunakan SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.
Sintaks
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]
object_name' [ ,'object_type' ] )
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
'object_name'
Adalah objek yang akan digunakan. object_name adalah varchar atau nvarchar. Jika object_nameadalah varchar, secara implisit dikonversi ke nvarchar. Menentukan database dan nama skema bersifat opsional.
'object_type'
Adalah jenis objek dengan cakupan skema. object_type adalah varchar atau nvarchar. Jika object_typeadalah varchar, secara implisit dikonversi ke nvarchar. Untuk daftar jenis objek, lihat kolom jenis di sys.objects (Transact-SQL).
Jenis Pengembalian
int
Pengecualian
Untuk indeks spasial, OBJECT_ID mengembalikan NULL.
Mengembalikan NULL pada kesalahan.
Pengguna hanya dapat melihat metadata yang dapat diamankan yang dimiliki pengguna atau di mana pengguna telah diberikan izin. Ini berarti bahwa fungsi bawaan yang memancarkan metadata seperti OBJECT_ID dapat mengembalikan NULL jika pengguna tidak memiliki izin apa pun pada objek. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Keterangan
Ketika parameter ke fungsi sistem bersifat opsional, database saat ini, komputer host, pengguna server, atau pengguna database diasumsikan. Fungsi bawaan harus selalu diikuti oleh tanda kurung.
Ketika nama tabel sementara ditentukan, nama database harus datang sebelum nama tabel sementara, kecuali database saat ini adalah tempdb. Contoh: SELECT OBJECT_ID('tempdb..#mytemptable').
Fungsi sistem dapat digunakan dalam daftar pemilihan, dalam klausa WHERE, dan di mana saja ekspresi diizinkan. Untuk informasi selengkapnya, lihat Ekspresi (transact-SQL) dan WHERE (Transact-SQL).
Contoh
A. Mengembalikan ID objek untuk objek tertentu
Contoh berikut mengembalikan ID objek untuk Production.WorkOrder tabel dalam database AdventureWorks2012.
USE master;
GO
SELECT OBJECT_ID(N'AdventureWorks2012.Production.WorkOrder') AS 'Object ID';
GO
B. Memverifikasi bahwa objek ada
Contoh berikut memeriksa keberadaan tabel tertentu dengan memverifikasi bahwa tabel memiliki ID objek. Jika tabel ada, tabel akan dihapus. Jika tabel tidak ada, DROP TABLE pernyataan tidak dijalankan.
USE AdventureWorks2012;
GO
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL
DROP TABLE dbo.AWBuildVersion;
GO
C. Menggunakan OBJECT_ID untuk menentukan nilai parameter fungsi sistem
Contoh berikut mengembalikan informasi untuk semua indeks dan partisi Person.Address tabel dalam database AdventureWorks2012 dengan menggunakan fungsi sys.dm_db_index_operational_stats .
Catatan
Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
Penting
Saat Anda menggunakan fungsi Transact-SQL DB_ID dan OBJECT_ID untuk mengembalikan nilai parameter, selalu pastikan bahwa ID yang valid dikembalikan. Jika database atau nama objek tidak dapat ditemukan, seperti ketika tidak ada atau dieja dengan tidak benar, kedua fungsi akan mengembalikan NULL. Fungsi sys.dm_db_index_operational_stats menginterpretasikan NULL sebagai nilai kartubebas yang menentukan semua database atau semua objek. Karena ini bisa menjadi operasi yang tidak disengaja, contoh di bagian ini menunjukkan cara aman untuk menentukan ID database dan objek.
DECLARE @db_id INT;
DECLARE @object_id INT;
SET @db_id = DB_ID(N'AdventureWorks2012');
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');
IF @db_id IS NULL
BEGIN;
PRINT N'Invalid database';
END;
ELSE IF @object_id IS NULL
BEGIN;
PRINT N'Invalid object';
END;
ELSE
BEGIN;
SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);
END;
GO
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
D: Mengembalikan ID objek untuk objek tertentu
Contoh berikut mengembalikan ID objek untuk FactFinance tabel dalam database AdventureWorksPDW2012 .
SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';
Lihat juga
Fungsi Metadata (SQL Transact)
sys.objects (Transact-SQL)
sys.dm_db_index_operational_stats (SQL Bertransaksi)
OBJECT_DEFINITION (SQL Bertransaksi)
OBJECT_NAME (SQL Bertransaksi)
