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

Database 整个本地数据库与sql azure同步,database,azure,azure-sql-database,microsoft-sync-framework,azure-data-sync,Database,Azure,Azure Sql Database,Microsoft Sync Framework,Azure Data Sync,我正在开发一个使用本地数据库的windows应用程序。 我想添加一个函数,将所有本地数据同步到sql azure 目前我使用以下代码。它使我能够成功地同步一个特定的表。这里是“Author\u Master” 以及以下方法 private static void prepareServer(SqlSyncProvider provider) { SqlConnection connection = (SqlConnection)provider.Connection;

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

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

以及以下方法

 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数据库迁移向导(SQLAzureMW)

它是一个开源应用程序

您可以使用它在Microsoft Azure SQL数据库之间迁移SQL数据库

SQLAzureMW有一个用户交互向导,引导用户完成分析/迁移过程

有关详细信息,请参阅


我希望这将对您有所帮助。

如果您使用的是同步框架,您必须明确告诉它哪些表(甚至列)要实际同步。

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

  Dim clientProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(clientCon, syncScope)


                            If Not (clientProvision.ScopeExists("Scope_" + tableName)) Then
                                clientProvision.Apply()
                            End If

                            Dim serverProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(serverCon, syncScope)

                            If Not (serverProvision.ScopeExists("Scope_" + tableName)) Then
                                serverProvision.Apply()
                            End If

                            Dim syncOrchestrator As New SyncOrchestrator()

                            ' Create provider for SQL Server
                            Dim clientProvider As New SqlSyncProvider("Scope_" + tableName, clientCon)

                            ' Set the command timeout and maximum transaction size for the SQL Azure provider.
                            Dim serverProvider As New SqlSyncProvider("Scope_" + tableName, serverCon)

                            ' Set Local provider of SyncOrchestrator to the onPremise provider
                            syncOrchestrator.LocalProvider = clientProvider

                            ' Set Remote provider of SyncOrchestrator to the azureProvider provider 
                            syncOrchestrator.RemoteProvider = serverProvider

                            ' Set the direction of SyncOrchestrator session to Upload and Download
                            syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload


                            'Dim thread As New Threading.Thread(Sub() ShowStatistics(syncOrchestrator.Synchronize(), tableName))
                            'thread.Start()
                            ShowStatistics(syncOrchestrator.Synchronize(), tableName)
SQL数据同步是Windows Azure SQL数据库的一项功能

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

SQL数据同步支持在Windows Azure数据中心内部或之间进行同步

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

SQL数据同步服务是免费的

有关更多详细信息,请查看“SQL数据同步”子主题


我希望这会对你有所帮助。

我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。亲爱的,我正在寻找同样的你是如何做到这一点为一个表你可以帮我这件事,因为我已经使用以下代码来做这件事。您可以试试。@las in m在mvc4中做同样的事情我使用了您的代码,但在SqlSyncProvider和all@las现在我已经删除了所有的代码,但现在的问题是它没有被执行。目前我正在使用它,是否可以迭代数据库查询中的所有表并执行上面的代码?您只需要设置一次。是的,您可以在“将表添加到范围”中遍历表列表。好的,谢谢您的建议,这就是我将要使用的内容now@las为什么?有什么特殊要求吗?迁移向导不是同步工具。这是一个迁移工具。您不能使用迁移工具进行增量同步。@JuneT感谢您提供宝贵的信息。我将相应地更新我的帖子。@las检查此工具。可能对您有帮助。@las很高兴听到它有帮助。
  Dim clientProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(clientCon, syncScope)


                            If Not (clientProvision.ScopeExists("Scope_" + tableName)) Then
                                clientProvision.Apply()
                            End If

                            Dim serverProvision As SqlSyncScopeProvisioning = New SqlSyncScopeProvisioning(serverCon, syncScope)

                            If Not (serverProvision.ScopeExists("Scope_" + tableName)) Then
                                serverProvision.Apply()
                            End If

                            Dim syncOrchestrator As New SyncOrchestrator()

                            ' Create provider for SQL Server
                            Dim clientProvider As New SqlSyncProvider("Scope_" + tableName, clientCon)

                            ' Set the command timeout and maximum transaction size for the SQL Azure provider.
                            Dim serverProvider As New SqlSyncProvider("Scope_" + tableName, serverCon)

                            ' Set Local provider of SyncOrchestrator to the onPremise provider
                            syncOrchestrator.LocalProvider = clientProvider

                            ' Set Remote provider of SyncOrchestrator to the azureProvider provider 
                            syncOrchestrator.RemoteProvider = serverProvider

                            ' Set the direction of SyncOrchestrator session to Upload and Download
                            syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload


                            'Dim thread As New Threading.Thread(Sub() ShowStatistics(syncOrchestrator.Synchronize(), tableName))
                            'thread.Start()
                            ShowStatistics(syncOrchestrator.Synchronize(), tableName)