Di SQL Server, Anda dapat menggunakan ORIGINAL_DB_NAME()
fungsi untuk mengembalikan nama database yang ditentukan oleh pengguna dalam string koneksi database.
Fungsi ini jangan disamakan dengan DB_NAME()
fungsi, yang mengembalikan database tertentu, atau database saat ini.
Saat pertama kali membuat koneksi ke SQL Server, Anda memiliki opsi untuk menentukan database awal. Misalnya, saat menggunakan antarmuka baris perintah seperti sqlcmd , Anda dapat menggunakan -d
parameter untuk menentukan database awal. Jika Anda tidak menggunakan parameter ini, database default login Anda akan menjadi database awal.
Setelah Anda terhubung, Anda dapat beralih ke database yang berbeda, tetapi database asli Anda akan selalu sama. Dengan kata lain, ORIGINAL_DB_NAME()
akan selalu mengembalikan database yang sama selama sesi Anda, bahkan jika Anda beralih ke database yang berbeda.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh dasarnya.
SELECT ORIGINAL_DB_NAME() AS [Original Database];
Hasil:
+---------------------+ | Original Database | |---------------------| | master | +---------------------+
Contoh 2 – String Koneksi Berbeda
Contoh ini menunjukkan bagaimana output dari ORIGINAL_DB_NAME()
fungsi ditentukan oleh string koneksi.
Pertimbangkan string koneksi berikut:
mssql-cli -S localhost -U sa -P bigStrongPassword!!! -d Music
Di sini, saya menggunakan mssql-cli alat baris perintah untuk terhubung ke SQL Server. Bagian yang kami minati adalah -d Music
. Ini menentukan bahwa database awal harus database Musik. Dengan kata lain, setelah saya terhubung ke SQL Server, database saya saat ini adalah Musik.
Jadi setelah menjalankan kode itu (dan berhasil terhubung ke SQL Server), saya dapat menjalankan ORIGINAL_DB_NAME()
:
SELECT ORIGINAL_DB_NAME() AS [Original Database];
Hasil:
+---------------------+ | Original Database | |---------------------| | Music | +---------------------+
Sekarang, mari kita buka koneksi lain, tapi kali ini saya akan menentukan database yang berbeda:
mssql-cli -S localhost -U sa -P bigStrongPassword!!! -d WideWorldImporters
Sekarang jalankan ORIGINAL_DB_NAME()
:
SELECT ORIGINAL_DB_NAME() AS [Original Database];
Hasil:
+---------------------+ | Original Database | |---------------------| | WideWorldImporters | +---------------------+
Contoh 3 – Beralih Basis Data
Inilah yang terjadi jika saya beralih ke database lain dan menjalankan pernyataan lagi:
USE Music; SELECT ORIGINAL_DB_NAME() AS [Original Database];
Hasil:
Changed database context to 'Music'. +---------------------+ | Original Database | |---------------------| | WideWorldImporters | +---------------------+ (1 row affected)
Basis data aslinya tetap sama.
Ini dia lagi jika dibandingkan dengan DB_NAME()
fungsi:
USE Music; SELECT DB_NAME() AS [Current Database], ORIGINAL_DB_NAME() AS [Original Database];
Hasil:
Changed database context to 'Music'. +--------------------+---------------------+ | Current Database | Original Database | |--------------------+---------------------| | Music | WideWorldImporters | +--------------------+---------------------+ (1 row affected)
Contoh 4 – Basis Data Default
Inilah yang terjadi jika saya tidak secara eksplisit menentukan database dalam string koneksi:
mssql-cli -S localhost -U sa -P bigStrongPassword!!!
Sekarang jalankan ORIGINAL_DB_NAME()
:
SELECT ORIGINAL_DB_NAME() AS [Original Database];
Hasil:
+---------------------+ | Original Database | |---------------------| | master | +---------------------+
Dalam hal ini, database default untuk pengguna tersebut digunakan.