将某些数据(不是全部)从一个数据库复制到另一个数据库

Posted

技术标签:

【中文标题】将某些数据(不是全部)从一个数据库复制到另一个数据库【英文标题】:Copy certain data (not all) from one DB to another DB 【发布时间】:2017-03-08 08:58:07 【问题描述】:

所以,我知道我们可以使用Tasks--> Generate Scripts 生成脚本以将一个数据库复制到另一个数据库,但是如果我不想要所有数据怎么办?比如说,我有一个查询,它显示了我想要从源获取的唯一数据 - 我如何将数据和表从源复制到目标?

我需要限制数据,因为源表很大。

我的数据库是:SQL Server 2008(源和目标)。请帮忙!

【问题讨论】:

***.com/a/25339437/6492765 的副本?也许我链接的这个解决方案可以帮助你。您只需使用 WHERE 语句编写自己的查询。 【参考方案1】:

您可以半手动创建传输。考虑到两个数据库都在同一台服务器上,您可以使用以下方式创建存储过程:

// Create heap table based on existing table
SELECT * INTO newdb.dbo.mytablecopy FROM olddb.dbo.myoriginaltable WHERE 1=2;

// Good idea to create some kind of id here and make it clustered index...
ALTER TABLE newdb.dbo.mytablecopy 
  ADD COLUMN id INT IDEINTITY(1,1) NOT NULL, 
  ADD CONSTRAINT pk_id PRIMARY KEY CLUSTERED (id);

// Then actually transfer data
INSERT INTO newdb.dbo.mytablecopy(...provide list of columns...)
SELECT * FROM olddb.dbo.myoriginaltable WHERE ...provide your selection criteria...

【讨论】:

以上是关于将某些数据(不是全部)从一个数据库复制到另一个数据库的主要内容,如果未能解决你的问题,请参考以下文章

oracle中如何将数据从一个表复制到另一个表(仅复制其中某些字段)

将多个表从一个数据库复制到另一个

Oracle 将执行计划从一个数据库复制到另一个

将数据从一张电子表格复制到另一张电子表格

将过滤后的数据从一个工作表复制到另一个工作表

ORACLE11g将数据库内容全部复制,并将其加为本数据库的一个新实例