Sql-Server

如何在 SSMS 的 SQL 查詢視窗中更改目前數據庫?

  • February 12, 2018

我正在嘗試創建一個 SQL 腳本,該腳本在主數據庫中創建一個新的伺服器登錄,然後在現有數據庫中創建一個相應的使用者。

如果’使用

$$ database_name $$’ 在查詢編輯器中出現多次,會導致兩個錯誤:

消息 40508,級別 16,狀態 1,第 4 行 USE 語句不支持在數據庫之間切換。使用新連接連接到不同的數據庫。

消息 40508,級別 16,狀態 1,第 11 行 USE 語句不支持在數據庫之間切換。使用新連接連接到不同的數據庫。

我考慮過打開 SQL CMD 模式並使用 :CONNECT 命令,但我不想連接到不同的數據庫伺服器,只需更改數據庫即可。連接到不同的數據庫(甚至是同一個數據庫)也需要我在腳本中嵌入使用者名和密碼,這是不可取的。我只是想打開連接到正確伺服器的 SQL 腳本,並且能夠在數據庫之間切換。

閱讀此連結

出現此問題的原因是 Azure SQL 數據庫不支持“使用”命令。

您必須為 SQL Server 安裝最新的累積更新

如果 Azure 允許您使用 3 部分名稱引用其他數據庫中的儲存過程,那麼您可以嘗試通過以下方式使用動態 SQL 執行命令sp_executesql

EXEC [master].[dbo].[sp_executesql]
            N'CREATE LOGIN [Bob] WITH PASSWORD = ''fgdfgdfgdfgfd'';';
CREATE USER [Bob] FOR LOGIN [Bob];

引用自:https://dba.stackexchange.com/questions/197715