[SqlServer] 資料轉置 及 本機建立DBLink至雲端AzureDB
如題,近期專案中的測試資料庫放在Azure,在資料轉置的途中,使用過幾種方式,其中最基本的就是使用 [匯出資料] 功能,較為麻煩一點的就是建立 DBLink,以下說明。
1. [匯出資料]功能
1.1 對資料庫點擊右鍵選擇 [匯出資料],並點擊下一步
1.2 [選擇資料來源],就是你當前資料的存放位置,如下圖所示:
2.1 建立 AzureDB 的 DBLink 若是使用精靈建立,很有可能會報錯,錯誤範例如下:
Reference to database and/or server name in 'Sample.sys.sp_tables_rowset2' is not supported in this version of SQL Server
2.2 經過查詢後,建立 AzureDB 的 DBLink 建議使用指令方式,指令如下:
EXEC sp_addlinkedserver
@server='AZURE_DB', -- (可自訂)雲端連線的名稱
@srvproduct='', -- 預設空
@provider='sqlncli', -- 預設 sqlncli
@datasrc='sample.database.windows.net', -- (需正確)雲端連線伺服器
@location='', -- 預設空
@provstr='', -- 預設空
@catalog='AdventureWorks2019' -- (需正確)雲端連線的資料庫名稱
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'AZURE_DB', -- (可自訂)雲端連線的名稱
@useself = 'false', -- 預設空
@rmtuser = 'admin', -- (需正確) 使用者名稱(帳號)
@rmtpassword = 'abcd1234' -- (需正確) 密碼
EXEC sp_serveroption 'AZURE_DB', 'rpc out', true -- (需正確) 需對應上方的雲端連線伺服器
2.3 之後就可以透過下指令的方式取得 AZURE_DB 的資料了,後續新刪修查就跟T-SQL一樣,不多作介紹了。
SELECT TOP 1000 * FROM [AZURE_DB].[AdventureWorks2019].[dbo].[Sales].[Store]
參考資料:
1. Cannot get Linked Servers to work in Sql Azure - Stack Overflow
2. How to insert a row into a linked server table? - Stack Overflow
3. [SQL SERVER]如何建立LinkServer連接Oracle | by RiCo 技術農場 | RiCosNote | Medium
留言
張貼留言