database - 整个本地数据库与 sql azure 同步

标签 database azure azure-sql-database microsoft-sync-framework azure-data-sync

我正在开发一个使用本地数据库的Windows应用程序。 我想添加一个功能来将所有本地数据同步到sql azure。

目前我使用了以下代码。它使我能够成功同步一个特定的表。这里是“Author_Master”

 string sqlazureConnectionString = "XXXX";
 string sqllocalConnectionString = "Server=localhost;Database=Enh_Branchwise_Master_Bookshop;Trusted_Connection=True";

        using (SqlConnection serverCon = new SqlConnection(sqlazureConnectionString))
        using (SqlConnection clientCon = new SqlConnection(sqllocalConnectionString))
        {
            var provider1 = new SqlSyncProvider("scope1", serverCon);
            var provider2 = new SqlSyncProvider("scope1", clientCon);

            prepareServer(provider1);
            prepareClinet(provider2, serverCon);
            SyncOrchestrator sync = new SyncOrchestrator();
            sync.LocalProvider = provider1;
            sync.RemoteProvider = provider2;

            sync.Synchronize();

        }

还有以下方法。

 private static void prepareServer(SqlSyncProvider provider)
    {
        SqlConnection connection = (SqlConnection)provider.Connection;
        SqlSyncScopeProvisioning config = new SqlSyncScopeProvisioning(connection);

        if (!config.ScopeExists(provider.ScopeName))
        {
            DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription(provider.ScopeName);
            scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable("Author_Master", connection));
            config.PopulateFromScopeDescription(scopeDesc);
            config.SetCreateTableDefault(DbSyncCreationOption.CreateOrUseExisting);
            config.Apply();
        }
    }

    private static void prepareClinet(SqlSyncProvider provider, SqlConnection sourceConnection)
    {
        SqlConnection connection = (SqlConnection)provider.Connection;
        SqlSyncScopeProvisioning config = new SqlSyncScopeProvisioning(connection);

        if (!config.ScopeExists(provider.ScopeName))
        {
            DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription(provider.ScopeName);
            scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable("Author_Master", sourceConnection));
            config.PopulateFromScopeDescription(scopeDesc);
            config.Apply();
        }
    }

我的问题:有没有办法一次性同步数据库中的所有表,而不需要一张一张地添加表。

我的两个数据库具有相同的架构。 请大家给点建议,

最佳答案

您可以使用SQL数据同步工具。

SQL 数据同步是 Windows Azure SQL 数据库的一项功能。

使用 SQL 数据同步,您可以通过 Windows Azure SQL 数据库实例同步选定的数据。

SQL 数据同步支持 Windows Azure 数据中心内部或跨数据中心的同步。

SQL 数据同步还支持 SQL 数据库实例和本地 SQL Server 数据库的混合配置。

SQL 数据同步服务是免费的。

更多详情请查看ScottGu's Blog Post在“SQL 数据同步”子主题下。

希望这对您有帮助。

关于database - 整个本地数据库与 sql azure 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032175/

相关文章:

ssl - 具有 SSL 的自定义子域未重定向到 Azure cloudapp

java - 使用用户名和密码访问 Azure Active Directory

azure-sql-database - Azure SQL Server : Error occurred during the pre-login handshake

mongodb - 从 SQL Azure 中获取大行 - 但去哪里?表、Blob 或 MongoDB 之类的东西?

database - 如何恢复 Pervasive Db 备份?

mysql - 将大型(40 GB).csv 文件上传到 mysql 表的最佳方法是什么

mysql - MySQL中的 "active"语句是什么?

java - 如何通过Java将字节数组插入到SQL中?

c# - 在 Azure 中添加、编辑元数据

azure - 持久 Azure Functions 是否可以跨编程语言(C# 到 Python Azure Functions)进行通信?