From 6b5388255ce3fcc8d74c723bd8f9abfe62742646 Mon Sep 17 00:00:00 2001 From: Simone Bizzotto Date: Mon, 24 Feb 2025 15:12:57 +0100 Subject: [PATCH] Connect-DbaInstance, honor -Database parameter (#9585) --- public/Connect-DbaInstance.ps1 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/public/Connect-DbaInstance.ps1 b/public/Connect-DbaInstance.ps1 index e8e4697123..9b270836e7 100644 --- a/public/Connect-DbaInstance.ps1 +++ b/public/Connect-DbaInstance.ps1 @@ -673,6 +673,22 @@ function Connect-DbaInstance { $sqlConnectionInfo.Password = $csb.Password $null = $csb.Remove('Password') } + # look for 'Initial Catalog' and 'Database' in the connection string + $specifiedDatabase = $csb['Database'] + if ($specifiedDatabase -eq '') { + $specifiedDatabase = $csb['Initial Catalog'] + } + if ($Database -and $Database -ne $specifiedDatabase) { + Write-Message -Level Debug -Message "Database specified in connection string '$specifiedDatabase' does not match Database parameter '$Database'. Database parameter will be used." + # clear both, in order to not be overridden later by setting all AddtionalParameters + if ($csb.ShouldSerialize('Database')) { + $csb.Remove('Database') + } + if ($csb.ShouldSerialize('Initial Catalog')) { + $csb.Remove('Initial Catalog') + } + $sqlConnectionInfo.DatabaseName = $Database + } # Add all remaining parts of the connection string as additional parameters. $sqlConnectionInfo.AdditionalParameters = $csb.ConnectionString