DB_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)
Fungsi ini mengembalikan nomor identifikasi database (ID) dari database tertentu.
Sintaks
DB_ID ( [ 'database_name' ] )
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
'database_name'
Nama database yang nomor DB_ID ID databasenya akan kembali. Jika panggilan untuk DB_ID menghilangkan database_name, DB_ID mengembalikan ID database saat ini.
Tipe yang dikembalikan
int
Keterangan
DB_IDhanya dapat digunakan untuk mengembalikan pengidentifikasi database database saat ini dalam Azure SQL Database. NULL dikembalikan jika nama database yang ditentukan selain database saat ini.
Catatan
Saat digunakan dengan Azure SQL Database, DB_ID mungkin tidak mengembalikan hasil yang sama seperti kueri database_id dari sys.databases. Jika pemanggil membandingkan hasilnya dengan tampilan sys lainnya, maka sys.databases harus dikueri DB_ID sebagai gantinya.
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 memerlukan CREATE DATABASE izin minimal. Database yang disambungkan pemanggil 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 login mendeteksi database, REVOKEVIEW ANY DATABASE izin dari publik, atau DENYVIEW ANY DATABASE izin untuk login individual.
Contoh
A. Mengembalikan ID database 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 database database AdventureWorks2012 .
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 database database AdventureWorks2012 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'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 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 AdventureWorksDW2012.
SELECT DB_ID('AdventureWorksPDW2012');
Lihat juga
DB_NAME (SQL bertransaksi)
Fungsi Metadata (SQL Transact)
sys.databases (T-SQL)
sys.dm_db_index_operational_stats (SQL Bertransaksi)
