OBJECT_ID (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform 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 pemicu DDL, gunakan SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.

Konvensi sintaks transact-SQL

Sintaksis

OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

'object_name'
Adalah objek yang akan digunakan. object_name adalah varchar atau nvarchar. Jika object_name 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_type varchar, secara implisit dikonversi ke nvarchar. Untuk daftar jenis objek, lihat kolom jenis di sys.objects (Transact-SQL).

Jenis Kembalian

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. Sebagai 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

J. Mengembalikan ID objek untuk objek tertentu

Contoh berikut mengembalikan ID objek untuk Production.WorkOrder tabel dalam database AdventureWorks2022.

USE master;  
GO  
SELECT OBJECT_ID(N'AdventureWorks2022.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 AdventureWorks2022;  
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 AdventureWorks2022 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 salah dieja, kedua fungsi akan mengembalikan NULL. Fungsi sys.dm_db_index_operational_stats menafsirkan 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 DATABASE dan ID objek.

DECLARE @db_id INT;  
DECLARE @object_id INT;  
SET @db_id = DB_ID(N'AdventureWorks2022');  
SET @object_id = OBJECT_ID(N'AdventureWorks2022.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 AdventureWorksPDW2022 .

SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';  

Lihat Juga

Fungsi Metadata (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_db_index_operational_stats (T-SQL)
OBJECT_DEFINITION (T-SQL)
OBJECT_NAME (T-SQL)