【问题标题】:Copy certain data (not all) from one DB to another DB将某些数据(不是全部)从一个数据库复制到另一个数据库
【发布时间】:2017-03-08 08:58:07
【问题描述】:
所以,我知道我们可以使用Tasks--> Generate Scripts 生成脚本以将一个数据库复制到另一个数据库,但是如果我不想要所有数据怎么办?比如说,我有一个查询,它显示了我想要从源获取的唯一数据 - 我如何将数据和表从源复制到目标?
我需要限制数据,因为源表很大。
我的数据库是:SQL Server 2008(源和目标)。请帮忙!
【问题讨论】:
标签:
sql
sql-server
sql-server-2008
stored-procedures
【解决方案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...