SQL Serverでは、ORIGINAL_DB_NAME()
を使用できます。 データベース接続文字列でユーザーが指定したデータベース名を返す関数。
この関数をDB_NAME()
と混同しないでください。 関数。特定のデータベースまたは現在のデータベースのいずれかを返します。
SQL Serverに最初に接続するときに、初期データベースを指定するオプションがあります。たとえば、 sqlcmdなどのコマンドラインインターフェイスを使用する場合 、-d
を使用できます 初期データベースを指定するパラメーター。このパラメータを使用しない場合、ログインのデフォルトデータベースが初期データベースになります。
接続すると、別のデータベースに切り替えることができますが、元のデータベースは常に同じになります。つまり、ORIGINAL_DB_NAME()
別のデータベースに切り替えた場合でも、セッション全体で常に同じデータベースが返されます。
例1-基本的な使用法
これが基本的な例です。
SELECT ORIGINAL_DB_NAME() AS [Original Database];
結果:
+---------------------+ | Original Database | |---------------------| | master | +---------------------+
例2–さまざまな接続文字列
この例は、ORIGINAL_DB_NAME()
の出力がどのように行われるかを示しています。 機能は接続文字列によって決定されます。
次の接続文字列について考えてみます。
mssql-cli -S localhost -U sa -P bigStrongPassword!!! -d Music
ここでは、 mssql-cliを使用します SQLServerに接続するためのコマンドラインツール。私たちが興味を持っているのは-d Music
です。 。これは、初期データベースがMusicデータベースであることを指定します。つまり、SQL Serverに接続すると、現在のデータベースはMusicになります。
したがって、そのコードを実行した後(そして、SQL Serverに正常に接続した後)、ORIGINAL_DB_NAME()
を実行できます。 :
SELECT ORIGINAL_DB_NAME() AS [Original Database];
結果:
+---------------------+ | Original Database | |---------------------| | Music | +---------------------+
次に、別の接続を開きますが、今回は別のデータベースを指定します:
mssql-cli -S localhost -U sa -P bigStrongPassword!!! -d WideWorldImporters
次に、ORIGINAL_DB_NAME()
を実行します :
SELECT ORIGINAL_DB_NAME() AS [Original Database];
結果:
+---------------------+ | Original Database | |---------------------| | WideWorldImporters | +---------------------+
例3–データベースの切り替え
別のデータベースに切り替えてステートメントを再度実行すると、次のようになります。
USE Music; SELECT ORIGINAL_DB_NAME() AS [Original Database];
結果:
Changed database context to 'Music'. +---------------------+ | Original Database | |---------------------| | WideWorldImporters | +---------------------+ (1 row affected)
元のデータベースは同じままです。
ここでも、DB_NAME()
と比較した場合です。 機能:
USE Music; SELECT DB_NAME() AS [Current Database], ORIGINAL_DB_NAME() AS [Original Database];
結果:
Changed database context to 'Music'. +--------------------+---------------------+ | Current Database | Original Database | |--------------------+---------------------| | Music | WideWorldImporters | +--------------------+---------------------+ (1 row affected)
例4–デフォルトのデータベース
接続文字列でデータベースを明示的に指定しないと、次のようになります。
mssql-cli -S localhost -U sa -P bigStrongPassword!!!
次に、ORIGINAL_DB_NAME()
を実行します :
SELECT ORIGINAL_DB_NAME() AS [Original Database];
結果:
+---------------------+ | Original Database | |---------------------| | master | +---------------------+
この場合、そのユーザーのデフォルトのデータベースが使用されます。