2016-11-29 186 views
1

我有不同的邏輯服務器的一系列Azure的SQL Data Warehouse數據庫之間進行切換。我主要使用DBeaver與它們進行交互(因爲我們正在努力獲得部署了ADW的Management Studio版本)。DBeaver和SQL Azure的數據倉庫 - SQL錯誤[104455] [S0001]:USE語句不支持數據庫

我試圖在DBeaver中導航對象樹時,對於所有各種數據庫但唯一地在一個數據庫的連接上配置了JDBC連接時,擴展表,視圖,索引和過程以顯示以下錯誤名單說對象:

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數據庫的行爲會有所不同?

回答

1

的SQL 小號 erver在Azure是一個邏輯容器,而不是在箱版本SQL 小號 erver的服務器(又名實例)相同的物理容器。這引入了一些差異,包括無法支持目前實施的「USE」。關於此的更多詳細信息在https://docs.microsoft.com/en-us/azure/sql-database/sql-database-transact-sql-information

中有記錄當您連接到Azure SQL DB或SQL DW時,SSMS首先連接到主服務器以獲取數據庫(以及其他某些內容)的列表。當您瀏覽SSMS中的對象瀏覽器以查看不同DB/DW/StretchDB中的各種對象時,它將爲您瀏覽的每個數據庫打開一個新連接。

從你的描述,它看起來像你用它連接到本地SQL Server因此「使用」失效的假設下運行DBeaver的版本。建議你ping他們看看他們是否打算在未來的更新中解決這個問題。您也可以將您的投票和評論添加到SQL Azure的DB反饋頁面https://feedback.azure.com/forums/217321-sql-database/suggestions/14822082-allow-the-use-statement-to-switch-between-database

+0

在這種情況下,該工具適用於許多ADW數據庫,而關於用投訴,但一個具體的DB抱怨。 – Steve

+0

它是該工具的相同版本嗎? SQL DB和SQL DW都不支持USE語句,因此如果該工具在DB/DW之間導航時使用該命令,它將會失敗。我不熟悉DBeaver,所以我不知道它如何處理瀏覽體驗。 – SQLmojoe

+0

是的,DBeaver運行在一臺PC上,連接設置在幾臺邏輯服務器上的許多ADW數據庫上。 – Steve