Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana ORIGINAL_DB_NAME() Bekerja di SQL Server

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skema basis data, peningkatan otomatis

  2. ROLLBACK TRUNCATE di SQL Server

  3. Fungsi Partisi COUNT() OVER mungkin menggunakan DISTINCT

  4. Ikhtisar Kompresi Data di SQL Server

  5. Bagaimana cara mengonversi DateTime ke VarChar