将本地 SQL 数据库复制到 Azure

Copy local SQL database onto Azure

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

我的本地数据库中有我想要的所有数据和table结构。

我目前有一个 运行 数据库实时数据库,其中分配了所有备份内容等,所以我不只是想创建一个全新的数据库(不是我能找到如何做到这一点要么)...

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

我该怎么做???

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

    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;
    
  8. 现在进入 sql 服务器管理工​​作室并右键单击您的本地数据库并转到任务,然后导出数据

  9. 导出到您的 Azure 数据库,但请确保编辑映射并勾选标识框。
  10. 数据已移动,现在在您的 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;
    

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