如何将数据从select语句复制到另一个数据库表?

时间:2019-06-24 16:24:15

标签: sql sql-server migration

在sql服务器中,我有两个服务器,每个服务器都有一个数据库。在第一台服务器(sql server 2005)中,我编写了select语句,然后显示其列名与第二台服务器中的表匹配的数据(架构不同)。这基本上是从2台服务器中进行数据迁移,其中新服务器中的架构是新的。

但是现在我如何才能从select语句中获取数据并将其基本上插入到新表中?另外,新表在ID列上具有自动递增的功能,但是我想保留旧数据库中的ID,因为它们在多个表中使用。

谢谢

2 个答案:

答案 0 :(得分:1)

这很简单,但有些东西却是大多数人不经常使用的。

将数据迁移到新服务器的最简单方法是使用此链接上的说明创建Linked Server

一旦您配置了链接服务器(对于本例,假设您正在新服务器上创建指向旧服务器的链接),我将亲自对旧视图中的View进行SELECT查询。服务器。

然后,在新服务器上,您将创建如下查询序列:

SET IDENTITY_INSERT MyNewTable1 ON
INSERT INTO MyNewTable1 [Optional field list here]
SELECT [Field List | *]
FROM MyOldServer.MyOldDB.dbo.MyViewForNewTable1
SET IDENTITY_INSERT MyNewTable1 OFF

SET IDENTITY_INSERT MyNewTable2 ON
INSERT INTO MyNewTable2 [Optional field list here]
SELECT [Field List | *]
FROM MyOldServer.MyOldDB.dbo.MyViewForNewTable2
SET IDENTITY_INSERT MyNewTable2 OFF

...

Et Voila。您的数据将以相同的身份值进行传输。

答案 1 :(得分:0)

要从服务器A插入到服务器B,您需要一个Linked Server

要保持身份值不变,您需要打开IDENTITY_INSERT