Bagikan melalui


DB_ID (T-SQL)

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Fungsi ini mengembalikan nomor identifikasi database (ID) dari database tertentu.

Konvensi sintaks transact-SQL

Sintaks

DB_ID ( [ 'database_name' ] )   

Argumen

'database_name'
Nama database yang nomor DB_ID ID databasenya akan ditampilkan. Jika panggilan untuk DB_ID menghilangkan database_name, DB_ID mengembalikan ID database saat ini.

Jenis yang dikembalikan

int

Keterangan

DB_ID hanya dapat digunakan untuk mengembalikan pengidentifikasi database database saat ini di Azure SQL Database. NULL dikembalikan jika nama database yang ditentukan selain database saat ini.

Catatan

Di Azure SQL Database, DB_ID mungkin tidak mengembalikan nilai yang sama dengan database_id kolom di sys.databases dan sys.database_service_objectives. Kedua tampilan ini mengembalikan database_id nilai yang unik dalam server logis, sementara DB_ID dan database_id kolom dalam tampilan sistem lain mengembalikan nilai yang unik dalam database tunggal atau dalam kumpulan elastis.

Izin

Jika pemanggil DB_ID tidak memiliki database non-master atau non-tempdb tertentu, ALTER ANY DATABASE atau VIEW ANY DATABASE izin tingkat server minimal diperlukan untuk melihat baris yang DB_ID sesuai. Untuk database master, DB_ID perlu CREATE DATABASE izin minimal. Database tempat pemanggil tersambung akan selalu muncul di sys.databases.

Penting

Secara default, peran publik memiliki VIEW ANY DATABASE izin, yang memungkinkan semua login untuk melihat informasi database. Untuk mencegah masuk mendeteksi database, REVOKE VIEW ANY DATABASE izin dari publik, atau DENY VIEW ANY DATABASE izin untuk masuk individual.

Contoh

J. Mengembalikan ID database dari database saat ini

Contoh ini mengembalikan ID database database saat ini.

SELECT DB_ID() AS [Database ID];  
GO  

B. Mengembalikan ID database dari database tertentu

Contoh ini mengembalikan ID AdventureWorks2022 database database.

SELECT DB_ID(N'AdventureWorks2008R2') AS [Database ID];  
GO  

C. Menggunakan DB_ID untuk menentukan nilai parameter fungsi sistem

Contoh ini menggunakan DB_ID untuk mengembalikan ID AdventureWorks2022 database database dalam fungsi sys.dm_db_index_operational_statssistem . Fungsi ini mengambil ID database sebagai parameter pertama.

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 database saat ini

Contoh ini mengembalikan ID database database saat ini.

SELECT DB_ID();  

E. Mengembalikan ID database bernama.

Contoh ini mengembalikan ID database database AdventureWorksDW2022.

SELECT DB_ID('AdventureWorksPDW2012');  

Lihat juga

DB_NAME (T-SQL)
Fungsi Metadata (Transact-SQL)
sys.databases (T-SQL)
sys.dm_db_index_operational_stats (T-SQL)