mssql借助链接服务器进行数据快速迁移

在工作中,遇到了一个任务,需要将A数据库的数据迁移到B数据库,两个数据库的数据结构是一样的。B数据库已经在相当数量的数据了,故而不能通过复制数据库的方式来实现。

 旧方法

    在对数据迁移的时候,一开始使用的是以下方法:

(1)使用SSMS的”生成和发布脚本”功能,将A数据库的数据导出成sql脚本。

 mssql借助链接服务器进行数据快速迁移

脚本类似于:

INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (10649, 0, N'其他', N'0000000') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (1, 2, N'成都', N'1398098') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (2, 2, N'成都', N'1360804') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (3, 2, N'成都', N'1398198') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (4, 2, N'成都', N'1398195') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (5, 2, N'成都', N'1355114') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (6, 2, N'成都', N'1390807') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (7, 2, N'成都', N'1370804') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (8, 2, N'成都', N'1398071') INSERT [dbo].[region] ([id], [region_id], [region_name], [region_code]) VALUES (9, 2, N'成都', N'1365808')

 (2)将生成sql脚本在B数据库上执行。

 

问题与困难

采用这种方式应对几千条数据还是没有问题的,但是当数据达到10万的时候,速度真是慢得令人发指。

 

新方法

通过探索,自创了一种新方法。

(1)使用链接服务器,在B数据库所在数据库服务器上建立一个链接服务器,指向A数据库。这样一来,在B数据库中就能直接操作A数据库了。

(2)使用insert into() select form 语句,直接将A数据库中查到的数据插入到B数据库中。

将上面的脚本改造成类似于:

 1 INSERT INTO [dbo].[region]  2 ( [id] ,  3 [region_id] ,  4 [region_name] ,  5 [region_code]  6  )  7 SELECT [id] ,  8 [Bundling] ,  9 [region_id] , 10 [region_name] , 11 [region_code] 12 FROM [Xianjie].[A].[dbo].[region]

 

迁移的速度得到了百倍以上的提升。哈哈

 

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/31084

(0)
优速盾-小U的头像优速盾-小U
上一篇 2025年6月18日 18:42
下一篇 2025年6月18日 23:04

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml