在SQL Server中将表从一个数据库复制到另一个数据库

我有一个名为foo的数据库和一个名为bar的数据库。 我有一个名为tblFoobar的foo表,我想从数据库foo移动(数据和所有)到数据库栏。 什么是SQL语句来做到这一点?

在SQL Server上? 和在同一个数据库服务器上? 使用三部分命名。

INSERT INTO bar..tblFoobar( *fieldlist* ) SELECT *fieldlist* FROM foo..tblFoobar 

这只是移动数据。 如果您想要移动表格定义(以及其他属性,例如权限和索引),则必须执行其他操作。

SQL Server Management Studio的“导入数据”任务(右键单击数据库名称,然后任务)将为您执行大部分操作。 从要复制数据的数据库运行它。

如果这些表不存在,它将为您创build它们,但是您可能不得不重新创build任何索引等。 如果表存在,它会默认附加新数据,但您可以调整(编辑映射),以便删除所有现有数据。

我一直使用它,它工作得很好。

这应该工作:

 SELECT * INTO DestinationDB..MyDestinationTable FROM SourceDB..MySourceTable 

不会复制constaints,默认或索引。 创build的表不会有聚集索引。

或者,您可以:

 INSERT INTO DestinationDB..MyDestinationTable SELECT * FROM SourceDB..MySourceTable 

如果您的目标表存在并且为空。

如果只有一张桌子,那么你所要做的就是

  • 脚本表定义
  • 在另一个数据库中创build新表
  • 更新规则,索引,权限等
  • 导入数据(上面已经显示了几个插入示例)

有一件事你必须考虑的是其他的更新,比如将来移植其他对象。 请注意您的源表和目标表不具有相同的名称。 这意味着如果你有依赖的对象,如视图,存储过程等,你也必须做出改变。

惠一个或几个对象,你可以手动没有任何问题。 但是,当不止一次更新时,第三方比较工具非常方便。 现在,我正在使用ApexSQL Diff来进行模式迁移,但是您不能在其他任何工具上出错。

  1. 在management studio中编写create table ,在bar中运行该脚本创build表。 (在对象资源pipe理器中右键单击表,脚本表为,创build为…)

  2. INSERT bar.[schema].table SELECT * FROM foo.[schema].table

您还可以使用“ 生成SQL Server脚本向导”来帮助指导创build可执行以下操作的SQL脚本:

  • 复制表架构
  • 任何约束(身份,默认值等)
  • 表中的数据
  • 和其他许多选项,如果需要的话

SQL Server 2008的良好示例工作stream程, 此处显示的屏幕截图。

你可以这样走:(一个普遍的例子)

 insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB) Select columnA, columnB from DeveloperDB.dbo.Customers 

另外,如果您还需要生成列名以及插入子句,请使用:

  select (name + ',') as TableColumns from sys.columns where object_id = object_id('YourTableName') 

复制结果并粘贴到查询窗口中以表示您的表列名称,即使这样也会排除标识列:

  select (name + ',') as TableColumns from sys.columns where object_id = object_id('YourTableName') and is_identity = 0 

如果数据库属于同一位置,请记住复制行的脚本将起作用。


你可以试试这个。

 select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable> 

如果两个数据库在同一台服务器上,服务器名称是可选

如果有现有的表,我们只想复制数据,我们可以尝试这个查询。

插入到Destination_Existing_Tbl中selectcol1,col2 FROM Source_Tbl

复制数据

 INSERT INTO Alfestonline..url_details(url,[status],recycle) SELECT url,status,recycle FROM AlfestonlineOld..url_details