2

我在不同的逻辑服务器上有一系列 Azure SQL 数据仓库数据库。我主要使用 DBeaver 与它们进行交互(因为我们正在努力部署支持 ADW 的 Management Studio 版本)。

我从 DBeaver 为所有各种数据库配置了 JDBC 连接,但在一个数据库的连接上是唯一的,当尝试在 DBeaver 中导航对象树时,在展开表、视图、索引和过程以显示所述列表时发生以下错误对象:

SQL Error [104455] [S0001]: USE statement is not supported to switch between
databases. Use a new connection to connect to a different     
Database.com.microsoft.sqlserver.jdbc.SQLServerException: USE statement is   
not supported to switch between databases. Use a new connection to 
connect to a different Database.

我们当地的 Azure 支持团队(包括 MSFT 员工)在几周内配置了各种 ADW 数据库和服务器。我个人使用相同的 T-sql 在数据库上创建了登录名/用户。

为什么这些 PaaS 数据库的行为会有所不同?

4

1 回答 1

1

Azure 中的 SQL 服务器是一个逻辑容器,与盒装版 SQL 服务器中的服务器(又名实例)不同物理容器。这引入了许多差异,包括无法支持当前实施的“USE”。有关这方面的更多详细信息记录在https://docs.microsoft.com/en-us/azure/sql-database/sql-database-transact-sql-information

当您连接到 Azure SQL DB 或 SQL DW 时,SSMS 首先连接到 master 以获取数据库列表(以及其他一些东西)。当您在 SSMS 中导航对象浏览器以查看不同 DB/DW/StretchDB 中的各种对象时,它将为您浏览的每个数据库打开一个新连接。

根据您的描述,您使用的 DBeaver 版本似乎是在假设它连接到本地 SQL Server 的情况下运行的,因此出现“USE”故障。建议你 ping 他们看看他们是否计划在未来的更新中解决这个问题。您还可以将您的投票和评论添加到 Azure SQL DB 反馈页面https://feedback.azure.com/forums/217321-sql-database/suggestions/14822082-allow-the-use-statement-to-switch-between -数据库

于 2016-11-30T23:34:19.633 回答