用SSMS連接Azure Sql Database 與連接本地庫的一些操作區別


背景

我們知道Azure Sql Database 可以降低運維成本、是一種Pass模式,有資源彈性設置,可以自由調整資源自動對應不同業務高峰(當然也可以降低費用成本),也方便項目后期的資源擴展,以及一些其他優點或特性,這就不一一列出。那么數據庫開發工程師來說,操作Azure Sql Database 與我們使用的SSMS(Microsoft Sql Server Management Studio)在本地庫上操作有哪些區別。
 
我們簡單從如下幾部分進行比較
1.創建對象比較;(簡單列一下Azure 上創建數據庫操作,SSMS創建數據庫默認省略)
2.連接庫比較;
3.操作比較;
 

1.創建對象比較

 

 

 

2.鏈接庫的比較

 

 

通過上述圖可以看到,在azure sql database 中涉及到實例一級的對象都是沒有了。
在azure sql database大概總結如下:
1.沒有 AlwaysON,沒有數據庫鏡像,沒有日志傳送,沒有復制。 有異地復制可以直接添加數據庫輔助副本(庫大小是指數據文件大小);
2.沒有 agent ;如需執行定時調度可以參考通過本地Agent監Azure_sql_database
3.沒有SSIS;
4.不支持實例一級的對象(如不支持全局臨時表、沒有Profiler等);如需監控可以參考《如何在Azure sql database 下監控正在運行的腳本或某個存儲過程是否已運行》
 

3.具體操作方面比較

 

 

 通過上圖發現azure sql database系統數據庫中沒有tempdb,那能否使用臨時表之類的對象?
首先查看當前的azure sql database 版本號

 

 測試臨時表(不是sql server 2016 temporal table)
 

 

可以使用臨時表,不支持使用全局的臨時表。

 

 Pass模式下,某些命令已不支持。

 

 注意默認的getdate()是UTC時間,與北京時間相差8小時。

 

 不能在本庫顯式調用其他庫,如:use master
 
默認情況下,azure sql database 不支持跨庫操作,需要創建擴展表,建同構同名的表,只能是只讀且架構唯一。如要存儲過程進行跨庫操作,需使用sp_execute_remote調用。
 
ssms 2012界面下存儲過程點右鍵如下圖:

 

SSMS 2016界面下存儲過程點右鍵如下圖:

 

UI界面操作,建議安裝最新版本SSMS.或者 exec sp_helptext 加具體的存儲過程名稱,執行,把執行結果拷出才是存儲過程的腳本;
 
參考資料

總結

azure sql database 與ssms相比:
1.沒有 AlwaysON,沒有數據庫鏡像,沒有日志傳送,沒有復制。 有異地復制可以直接添加數據庫輔助副本(庫大小是指數據文件大小);
2.沒有 agent ;如需執行定時調度可以參考通過本地Agent監Azure sql database
3.沒有SSIS;
4.不支持實例一級的對象(例如不支持全局變量、沒有Profiler等);如需監控可以參考《如何在Azure sql database 下監控正在運行的腳本或某個存儲過程是否已運行》
5.有些命令不支持,因azure sql database 是Pass模式;
6.注意默認getdate()是取UTC時間,與北京時間相差8小時;
7.不能在本庫顯式調用其他庫;
8.默認情況下,azure sql database 不支持跨庫操作,需要創建擴展表,建同構同名的表,只能是只讀且架構唯一;
9.azure sql database 是基於v12的引擎,要在UI界面上操作建議安裝ssms 2016版操作。
10.用戶名限制,不能使用admin\administrator\sa\guest\root


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM