在sql服务器中,我有两个服务器,每个服务器都有一个数据库。在第一台服务器(sql server 2005)中,我编写了select语句,然后显示其列名与第二台服务器中的表匹配的数据(架构不同)。这基本上是从2台服务器中进行数据迁移,其中新服务器中的架构是新的。
但是现在我如何才能从select语句中获取数据并将其基本上插入到新表中?另外,新表在ID列上具有自动递增的功能,但是我想保留旧数据库中的ID,因为它们在多个表中使用。
谢谢
答案 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。