使用 bcp 将数据库迁移到 Azure SQL Database
--所有 都是在本机sql上运行
--先开启cmdshell
EXEC sp_configure ‘show advanced options‘, 1
GO
RECONFIGURE
GO
EXEC sp_configure ‘xp_cmdshell‘, 1
GO
RECONFIGURE
GO
/**导出指定表的文本文件 */
--EXEC master..xp_cmdshell ‘bcp MyDB.dbo.Feedbacks out D:\BcpFile\exportFeedbacks.dat -c -S (local) -U sa -P sa‘
-- 添加 文件格式 导出数据文件
----E
如果未指定 -E,则将忽略所导入数据文件中此列的标识值,而且 SQL Server 将根据创建表期间指定的种子值和增量值自动分配唯一值。
如果数据文件不包含表或视图中的标识列的值,则可使用格式化文件指定,在导入数据时应跳过表或视图中的标识列;SQL Server 将自动为该列分配唯一值。 有关详细信息,请参阅 DBCC CHECKIDENT (Transact-SQL)。
-E 选项有一个特殊的权限要求。 有关详细信息,请参阅本主题后面的“备注”。
-C { ACP | OEM | RAW | code_page }
指定该数据文件中数据的代码页
代码页 值 RAW
不进行代码页间的转换。 因为不进行转换,所以这是最快的选项。-n 使用数据的本机(数据库)数据类型执行大容量复制操作。 此选项不提示输入每个字段,它将使用本机值。
--Feedbacks表 导出
EXEC master..xp_cmdshell ‘bcp myDB.dbo.Feedbacks out D:\BcpFile\exportFeedbacks.dat -S (local) -U sa -P sa -E -n -C RAW ‘
--Feedbacks表 导出
-- 添加 文件格式 导入数据文件 到 服务器是 rty5678i.database.windows.net(云平台数据库)的 YMyDB数据库里 有相同的表结构
EXEC master..xp_cmdshell ‘Bcp YMyDB.dbo.Feedbacks in D:\BcpFile\exportFeedbacks.dat -S rty5678i.database.windows.net -U [email protected] -P 8uhb&UJMkloi -E -n -C RAW ‘
--Mobiles表 导出
EXEC master..xp_cmdshell ‘bcp myDB.dbo.Mobiles out D:\BcpFile\exportMobiles.dat -S (local) -U sa -P sa -E -n -C RAW ‘
--Mobiles表 导入
EXEC master..xp_cmdshell ‘Bcp YMyDB.dbo.Mobiles in D:\BcpFile\exportMobiles.dat -S rty5678i.database.windows.net -U myDBAdmin@rty5678i.database.windows.net -P 8uhb&UJMkloi -E -n -C RAW ‘
测试通过 千万级别的数据导出导入
可以使用工具 把本地数据库导入到SQL AZURE中呢?
使用 SQLAzureMW
地址 http://sqlazuremw.codeplex.com/
George 创建了 SQLAzureMW 来帮助我们的客户完成 SQL 数据库迁移过程