DB_ID (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

Konvensi sintaks transact-SQL

Sintaksis

DB_ID ( [ 'database_name' ] )   

Catatan

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

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, REVOKEVIEW ANY DATABASE izin dari publik, atau DENYVIEW 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');  

Baca juga

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