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.
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_stats
sistem . 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)