Windows Azure SQL Database (SQL Azure) 的使用上是非常方便的,不但有 GUI 介面的管理工具可用,資料存取的相容性也非常好,使用 ADO.NET 就能連到 SQL Database,而在移轉資料庫的時候,我們還有 SSMS/SSIS 或 SQL Azure Migration Wizard 等工具可用,今天我們用一個 DBA 很常轉移資料的方式-連結伺服器 (Linked Server) 來移轉資料。
首先,我們先在 ODBC 資料來源中設定:
設定方式也不難,首先,在伺服器名稱中輸入 SQL Database 的 Server 名稱:
然後設定使用者帳戶,規則要依 SQL Database 的規則設定,否則會無法連線:
接著設定預設資料庫,建議不要指向master,而是指向要用的資料庫:
接著接受預設值:
最後,測試一下連線可成功即可:
設定完畢後,回到 SSMS,使用下列兩個指令加入連結伺服器:
01 |
EXEC master.dbo.sp_addlinkedserver |
02 |
@server = N'[ODBC_DATA_SOURCE_NAME]', |
03 |
@srvproduct=N'Any', |
04 |
@provider=N'MSDASQL', |
05 |
@datasrc=N'CloudSQLDB' |
06 |
GO |
07 |
08 |
EXEC master.dbo.sp_addlinkedsrvlogin |
09 |
@rmtsrvname=N'[ODBC_DATA_SOURCE_NAME]', |
10 |
@useself=N'False', |
11 |
@locallogin=NULL, |
12 |
@rmtuser=N'[YOUR_SQL_AZURE_ACCOUNT]', |
13 |
@rmtpassword='[YOUR_PASSWORD]' |
14 |
GO |
設定完以後就能用 [link_server_name].[database_name].[owner].[object_name] 來存取 SQL Database 上的資料了。
PS: 據筆者的測試,有些資料型別在用 Linked Server 時會有 metadata 不一致的問題,例如 money 型別,這點可參考 Reference 的方式解決。
Reference:
http://blogs.msdn.com/b/sqlcat/archive/2011/03/08/linked-servers-to-sql-azure.aspx
文章標籤
全站熱搜
