Вы должны ответить себе на несколько вопросов:
- Является ли схема источника и цели
база данных стабильна?
- Можете ли вы позволить себе время простоя во время синхронизации?
- Вы передаете данные и структуру или только данные?
- Как часто вам нужна синхронизация? (один раз в день или всегда последние данные)
Ответ зависит от этих вопросов, но одно простое решение - использовать SMO и задачу «Передача» .
Server srv = default(Server);
srv = new Server();
//Reference the AdventureWorks database
Database db = default(Database);
db = srv.Databases("AdventureWorks");
//Create a new database that is to be destination database.
Database dbCopy = default(Database);
dbCopy = new Database(srv, "AdventureWorksCopy");
dbCopy.Create();
//Define a Transfer object and set the required options and properties.
Transfer xfr = default(Transfer);
xfr = new Transfer(db);
xfr.CopyAllTables = true;
xfr.Options.WithDependencies = true;
xfr.Options.ContinueScriptingOnError = true;
xfr.DestinationDatabase = "AdventureWorksCopy";
xfr.DestinationServer = srv.Name;
xfr.DestinationLoginSecure = true;
xfr.CopySchema = true;
//Script the transfer. Alternatively perform immediate data transfer
// with TransferData method.
xfr.ScriptTransfer();