【问题标题】:DBeaver and Azure SQL Data Warehouse - SQL Error [104455] [S0001]: USE statement is not supported to switch between databasesDBeaver 和 Azure SQL 数据仓库 - SQL 错误 [104455] [S0001]:不支持 USE 语句在数据库之间切换
【发布时间】:2016-11-29 20:01:06
【问题描述】:

我在不同的逻辑服务器上有一系列 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.

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

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

【问题讨论】:

    标签: azure-sqldw dbeaver


    【解决方案1】:

    Azure 中的 SQL server 是一个逻辑容器,与盒装版 SQL Server 中的服务器(又名实例)不同的物理容器。这引入了许多差异,包括无法支持当前实施的“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 他们,看看他们是否计划在未来的更新中解决这个问题。您还可以将您的投票和 cmets 添加到 Azure SQL DB 反馈页面https://feedback.azure.com/forums/217321-sql-database/suggestions/14822082-allow-the-use-statement-to-switch-between-database

    【讨论】:

    • 在这种情况下,该工具适用于许多 ADW 数据库,而不会抱怨 USE,但有一个特定的数据库抱怨。
    • 是同一个版本的工具吗? SQL DB 和 SQL DW 都不支持 USE 语句,因此如果工具在 DB/DW 之间导航时使用该命令,它将失败。我不熟悉 DBeaver,所以我不知道它是如何处理浏览体验的。
    • 是的,DBeaver 在一台 PC 上运行,并在几个逻辑服务器上设置了与许多 ADW 数据库的连接。
    猜你喜欢
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2016-06-30
    相关资源
    最近更新 更多