diff --git a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Query.cs b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Query.cs
index f9d2ad10..bc4aa645 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Query.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/QueryExecution/Query.cs
@@ -63,6 +63,11 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
///
private IFileStreamFactory streamOutputFactory;
+ ///
+ /// Name of the new database if the database name was changed in the query
+ ///
+ private string newDatabaseName;
+
///
/// ON keyword
///
@@ -425,7 +430,12 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
// Subscribe to database informational messages
sqlConn.GetUnderlyingConnection().InfoMessage -= OnInfoMessage;
}
- }
+ }
+
+ if (newDatabaseName != null)
+ {
+ ConnectionService.Instance.ChangeConnectionDatabaseContext(editorConnection.OwnerUri, newDatabaseName);
+ }
}
///
@@ -444,7 +454,7 @@ namespace Microsoft.SqlTools.ServiceLayer.QueryExecution
// Did the database context change (error code 5701)?
if (error.Number == DatabaseContextChangeErrorNumber)
{
- ConnectionService.Instance.ChangeConnectionDatabaseContext(editorConnection.OwnerUri, conn.Database);
+ newDatabaseName = conn.Database;
}
}
}