我使用来自http://sqlazuremw.codeplex.com/的向导将我的数据库从:
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)
到
Microsoft SQL Azure (RTM) - 11.0.9164.122
效果很好,但是有一张表包含超过 1 GB 的垃圾数据。所以我停止了这个过程。现在它复制了一个表结构,但忘记填充内容。我将不得不使用查询手动修复此问题:
-- when connected to the azure db
select into azureDb.dbo.tablename select * onPremisesServer.onPremisesDb.dbo.tablename
但是当我执行它时,我得到:
消息 40515,级别 15,状态 1,第 16 行
对“onPremisesServer.onPremisesDb.dbo.tablename”中的数据库和/或服务器名称的引用在此版本的 SQL Server 中不受支持。
我发现无法让链接服务器在 Sql Azure 中工作,它说它与客户端相关。所以我查找了我的 SSMS 版本:
- Microsoft SQL Server 管理工作室 11.0.3128.0
所以这不会导致这种情况。我也遇到了“onPremisesServer”只是一个 IP 地址的问题,不得不执行select name from sys.servers
以查找服务器别名,而不是使用 [ipadres] 来表示 onPremisesServer。仍然无法让它工作。这些表具有完全相同的架构。
编辑如 DeicLone123 所述,我使用了导入和导出数据。我已在 azure 上将表重命名为 tablename-old 并运行向导并得到: