DB_ID (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

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

Topic link iconKonvensi Sintaksis T-SQL

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)