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

时间:2011-11-27 11:35:18

标签: sql sql-server

我刚刚在我的机器上创建了一个空数据库。我现在希望将一个表从我们的服务器数据库复制到这个本地数据库。

我需要运行哪些sql命令才能执行此操作?我希望创建新表,从旧表复制数据并将其插入新表。

9 个答案:

答案 0 :(得分:26)

Create a linked server到源服务器。最简单的方法是右键单击Management Studio中的“链接服务器”;它在管理层 - >服务器对象。

然后,您可以使用由4个部分组成的名称server.database.schema.table复制表格:

select  *
into    DbName.dbo.NewTable
from    LinkedServer.DbName.dbo.OldTable

这将创建具有与原始表相同结构的新表,并复制数据。

答案 1 :(得分:7)

假设他们在同一台服务器上,请尝试:

SELECT *
INTO SecondDB.TableName
FROM FirstDatabase.TableName

这将创建一个新表,只是将数据从FirstDatabase.TableName复制到SecondDB.TableName,不会创建外键或索引。

答案 2 :(得分:7)

另一种可用于将表从源数据库复制到目标数据库的方法是SQL Server导出和导入向导,该向导可在SQL Server Management Studio中使用。

您可以选择从源数据库导出或从目标数据库导入,以便传输数据。

如果您安排复制与表的关系和订单无关的表,则此方法是将表从源数据库复制到目标数据库的快速方法。

使用此方法时,不会传输表的索引和键。如果您有兴趣复制它,则需要为这些数据库对象生成脚本。

如果这些是外键,将这些表连接在一起,则需要以正确的顺序导出数据,否则导出向导将失败。

在本文中,您可以随意阅读有关此方法的更多信息,以及更多方法(包括生成脚本,SELECT INTO和第三方工具): https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/

答案 3 :(得分:6)

SELECT ... INTO:

select * into <destination table> from <source table>

答案 4 :(得分:5)

INSERT INTO ProductPurchaseOrderItems_bkp
      (
       [OrderId],
       [ProductId],
       [Quantity],
       [Price]
      )
SELECT 
       [OrderId],
       [ProductId],
       [Quantity],
       [Price] 
FROM ProductPurchaseOrderItems 
   WHERE OrderId=415

答案 5 :(得分:5)

如果在两个数据库之间不断迁移,则插入已存在的表结构是可能的。如果是,那么:

使用以下语法:

insert into DESTINATION_DB.dbo.destination_table
select *
  from SOURCE_DB.dbo.source_table
[where x ...]

如果要迁移大量表(或具有外键约束的表),我建议:

  • 使用高级选项生成脚本/脚本数据类型:仅数据或
  • 使用第三方工具度假。

希望它有所帮助!

答案 6 :(得分:2)

假设您需要表格的不同名称。

如果您使用的是PHPmyadmin,则可以在菜单中使用其SQL选项。然后,您只需从第一个表中复制SQL代码并将其粘贴到新表中。

当我从localhost迁移到webhost时,这对我有用。 希望它适合你!

答案 7 :(得分:1)

最快的方法是使用RazorSQL或Toad这样的工具。

答案 8 :(得分:1)

如果您需要整个表格结构(而不​​仅仅是基本数据布局),请使用 Task>Script Table As>Create To>New Query Window 并在新数据库中运行。然后,您可以随意复制数据。