我在不同的逻辑服务器上有一系列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数据库的行为会有所不同?
答案 0 :(得分:1)
Azure中的SQL s erver是一个逻辑容器,与SQL S erver的框版本中的服务器(也称为实例)不同。这引入了许多不同之处,包括无法支持" 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-database