【问题标题】:Copy table from one database to another将表从一个数据库复制到另一个
【发布时间】:2012-01-07 06:53:33
【问题描述】:

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

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

【问题讨论】:

标签: sql sql-server


【解决方案1】:

要将表从一个数据库复制到另一个数据库,首先您必须为新表创建与旧表完全相同的表结构,而不是将表条目从一个表复制到另一个。

MySQL数据库解决方案

create table [new database.]<new table name> like [old database.]<old table name>;
insert [new database.]<new table name> select * from [old database.]<old table name>;

【讨论】:

    【解决方案2】:

    另一种可用于将表从源数据库复制到目标数据库的方法是 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】:
      INSERT INTO ProductPurchaseOrderItems_bkp
            (
             [OrderId],
             [ProductId],
             [Quantity],
             [Price]
            )
      SELECT 
             [OrderId],
             [ProductId],
             [Quantity],
             [Price] 
      FROM ProductPurchaseOrderItems 
         WHERE OrderId=415
      

      【讨论】:

        【解决方案4】:

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

        使用以下语法:

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

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

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

        希望对你有帮助!

        【讨论】:

          【解决方案5】:

          如果您需要整个表结构(不仅仅是基本数据布局),请使用 Task&gt;Script Table As&gt;Create To&gt;New Query Window 并在您的新数据库中运行。然后,您可以在闲暇时复制数据。

          【讨论】:

            【解决方案6】:

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

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

            当我从本地主机迁移到网络主机时,这对我来说很有效。 希望它对你有用!

            【讨论】:

            • 对于非常大的表,其 SQL 代码很难复制和粘贴,PHPmyadmin 的 ImportExport 菜单也可以轻松使用。
            【解决方案7】:

            最快的方法是使用 RazorSQL 或 Toad 等工具来执行此操作。

            【讨论】:

              【解决方案8】:

              假设他们在同一个服务器,试试这个:

              SELECT *
              INTO SecondDB.TableName
              FROM FirstDatabase.TableName
              

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

              【讨论】:

                【解决方案9】:

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

                然后您可以使用 4 部分名称复制表,server.database.schema.table

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

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

                【讨论】:

                【解决方案10】:

                选择...进入:

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2018-08-30
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-06-03
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多