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

时间:2017-03-08 08:58:07

标签: sql sql-server sql-server-2008 stored-procedures

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

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

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

1 个答案:

答案 0 :(得分:2)

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

// 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...