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

我有一个名为foo的数据库和一个名为bar的数据库。 我在foo中有一个名为tblFoobar的表,我想从数据库foo移动(数据和全部)到数据库栏。 执行此操做的SQL语句是什么? 数据库


#1楼

你能够这样走:(通常的例子) 服务器

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

此外,若是您还须要生成列名以及insert子句,请使用: 架构

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

复制结果并粘贴到查询窗口以表示您的表列名称,甚至这也将排除标识列: ide

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

请记住,若是数据库属于同一位置,则复制行的脚本将起做用。 工具


你能够尝试这个。 spa

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

若是两个DB位于同一服务器中,则服务器名称是可选的 code


#2楼

若是它只是一个表,那么你须要作的就是 对象

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

您须要考虑的一件事是其余更新,例如未来迁移其余对象。 请注意,源表和目标表的名称不一样。 这意味着若是依赖于视图,存储过程等依赖对象,您还必须进行更改。 索引

使用一个或多个对象,能够手动进行,无任何问题。 然而,当不单单是一些更新时,第三方比较工具很是方便。 如今我正在使用ApexSQL Diff进行架构迁移,可是你不能错过任何其余工具。 资源


#3楼

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

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

这只是移动数据。 若是要移动表定义(以及权限和索引等其余属性),则必须执行其余操做。


#4楼

这应该工做:

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

不会复制constaints,默认值或索引。 建立的表将没有汇集索引。

或者你能够:

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

若是目标表存在且为空。


#5楼

  1. 在管理工做室中编写create table脚本,在bar中运行该脚本以建立表。 (右键单击对象资源管理器中的表,脚本表为,建立到...)

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

相关文章
相关标签/搜索