将本地SQL数据库复制到Azure

时间:2015-06-04 16:19:02

标签: sql azure import azure-sql-database

我想做 - 应该很简单 - 将数据库从本地复制到实时...

我在本地数据库中拥有所需的所有数据和表结构。

我有一个当前正在运行的数据库实时数据库,其中包含分配给它的所有备份内容等,所以我不想创建一个全新的数据库(不是我可以找到如何执行此操作)。 。

我只想从该数据库中删除所有表,然后将我的所有数据和表从本地复制到live azure sql数据库中。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用SQL Server Management Studio实现此目的。

enter image description here

答案 1 :(得分:1)

  1. 如果您转到SQL Management Studio,请右键单击要复制数据的数据库...
  2. 转到任务生成脚本
  3. 仅选择您的表而不是整个数据库对象
  4. 在Visual Studio中打开要将副本创建为
  5. 的azure数据库
  6. 打开该数据库的新查询,并将生成的脚本粘贴到
  7. 执行并向众神祈祷
  8. 跳转因为它有效,现在在azure表上运行以下命令以禁用外键迁移:

    DECLARE @sql NVARCHAR(MAX) = N'';

    ;WITH x AS 
    (
      SELECT DISTINCT obj = 
          QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' 
        + QUOTENAME(OBJECT_NAME(parent_object_id)) 
      FROM sys.foreign_keys
    )
    SELECT @sql += N'ALTER TABLE ' + obj + ' NOCHECK CONSTRAINT ALL;
    ' FROM x;
    
    EXEC sp_executesql @sql;
    
  9. 现在进入sql server management studio并右键单击本地数据库并转到任务然后导出数据

  10. 导出到您的azure数据库,但请确保编辑映射并勾选标识框。
  11. 移动数据,现在在azure数据库中使用此键设置外键:

    DECLARE @sql NVARCHAR(MAX) = N'';

    ;WITH x AS ( SELECT DISTINCT obj = QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.' + QUOTENAME(OBJECT_NAME(parent_object_id)) FROM sys.foreign_keys ) SELECT @sql += N'ALTER TABLE ' + obj + ' WITH CHECK CHECK CONSTRAINT ALL; ' FROM x;

    EXEC sp_executesql @sql;