【问题标题】:SQL Server - copy table data from one server to a table in an Azure SQL DatabaseSQL Server - 将表数据从一台服务器复制到 Azure SQL 数据库中的表
【发布时间】:2017-04-24 11:58:23
【问题描述】:

我正在将数据库从 Azure VM 迁移到 Azure SQL 数据库。我尝试在 SSMS 中使用“将数据库部署到 Azure SQL 数据库”功能,但失败了几次,似乎是由于数据库的大小(110 GB)。因此,我在同一源服务器上制作了源数据库的副本,截断了包含大部分数据的表,然后再次尝试部署。成功。

现在我需要将原始源表中的数据获取到目标表中。我已经尝试了两种不同的方法,但都给出了错误

  1. 在 SSMS 中,我连接到两个 SQL Server。我在连接到目标数据库时运行了以下内容:

       INSERT INTO dbo.DestinationTable
       SELECT *
       FROM [SourceServer].[SourceDatabase].dbo.SourceTable
    

因此我得到了错误:

对数据库和/或服务器名称的引用 不支持“SourceServer.SourceDatabase.dbo.SourceTable” SQL Server 版本。

  1. 在 SSMS 中,使用源表中的导出数据向导。在尝试开始该工作时,我在验证阶段收到此错误:

错误 0xc0202049:数据流任务 1:插入失败 只读列“CaptureId”

我怎样才能完成这个看似简单的任务?

【问题讨论】:

    标签: sql-server azure-sql-database


    【解决方案1】:

    您可以尝试以下步骤,而不是使用 deploy database to azure directly 来处理大型数据库

    1.在本地机器上提取bacpac
    2.将bacpac复制到blob
    3.现在创建数据库时,可以使用blob中的bacpac作为源

    这种方法对我们有用并且速度非常快,您可能还必须确保 blob 与 SQLAzure 位于同一区域

    【讨论】:

    • 我不知道这种方法。谢谢你的提示!
    【解决方案2】:

    我已经解决了这个问题。使用选项 #2,您只需勾选“启用身份插入”复选框,它就可以正常工作。此复选框位于导出数据向导的编辑映射子菜单中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2023-04-05
      • 2016-03-07
      • 2011-03-19
      • 2015-09-11
      相关资源
      最近更新 更多