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

时间:2013-07-11 00:03:49

标签: sql sql-server data-migration

我有两个数据库,一个叫Natalie_playground,一个叫LiveDB。 由于我想练习插入,更新内容,我想将一些表从LiveDB复制到Natalie_playground

我要复制的表名为:     Customers, Computers, Cellphones, Prices

我试图做的是(使用SSMS)右键单击一个表,但那里没有Copy!

7 个答案:

答案 0 :(得分:10)

假设您有两个数据库,例如A和B:

  • 如果目标表不存在,将创建以下脚本(我不推荐这种方式):

    SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
    INTO COPY_TABLE_HERE 
    FROM  A.dbo.table_from_A table_A
    
  • 如果目标表存在,则:

     INSERT INTO TABLE_TARGET 
     SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
     FROM  A.dbo.table_from_A table_A
    

注意:如果您想学习并练习它,可以使用以前的脚本,但如果要将完整的结构和数据从数据库复制到另一个脚本,则应使用“备份和恢复数据库”或“生成脚本数据库”使用数据“并将其运行到另一个数据库。

答案 1 :(得分:8)

右键单击您的数据库 - >在任务下选择生成脚本,按照向导,选择表格并选中'脚本表数据'(或类似)的复选框将其生成为SQL脚本并在其他DB上执行。

答案 2 :(得分:4)

您还可以尝试SQL Server导入/导出向导。如果目标表不存在,则在运行向导时将创建它们。

查看MSDN以获取更多详细信息http://msdn.microsoft.com/en-us/library/ms141209.aspx

答案 3 :(得分:2)

我从其他博客找到了一个简单的方法。希望这可能会有所帮助。

Select * into DestinationDB.dbo.tableName from SourceDB.dbo.SourceTable  

http://www.codeproject.com/Tips/664327/Copy-Table-Schema-and-Data-From-One-Database-to-An

答案 4 :(得分:1)

试试这个:

如果目标表存在:

SELECT SourceTableAlias.*
INTO TargetDB.dbo.TargetTable
FROM  SourceDB.dbo.SourceTable SourceTableAlias

如果目标表不存在:

 INSERT INTO TargetDB.dbo.TargetTable 
 SELECT SourceTableAlias.*
 FROM SourceDB.dbo.SourceTable SourceTableAlias

祝你好运!

答案 5 :(得分:0)

试试这个

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)

答案 6 :(得分:0)

如果您只想复制表的架构,可以在上述查询的末尾添加一个错误条件。

离。

SELECT table_A.FIELD_1, ..., table_A.FIELD_N 
INTO LiveDB.custom_table
FROM  Natalie_playground.dbo.custom_table table_A
WHERE 0 > 1