【问题标题】:How to copy data from select statement to another database table?如何将数据从 select 语句复制到另一个数据库表?
【发布时间】:2019-06-24 16:24:15
【问题描述】:

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

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

谢谢

【问题讨论】:

标签: sql sql-server migration


【解决方案1】:

这很简单,但有一些大多数人不经常使用的复杂部分。

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

一旦你配置了链接服务器(对于这个例子,我假设你正在新服务器上创建一个指向旧服务器的链接),我会亲自将 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

...

等等瞧。您的数据将被传输,具有相同的身份值。

【讨论】:

【解决方案2】:

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

要保持身份值相同,您需要打开IDENTITY_INSERT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2014-05-02
    相关资源
    最近更新 更多