Nah, setelah menghubungi Dukungan Microsft, saya membuatnya berfungsi dengan baik, tetapi lambat dan kurang lebih tidak berguna. Melakukan pencadangan dan pemulihan jauh lebih cepat dan saya akan menggunakannya selama salinan baru harus hidup di server yang sama dengan aslinya.
Kode kerjanya adalah sebagai berikut:
ServerConnection conn = new ServerConnection("rune\\sql2008");
Server server = new Server(conn);
Database newdb = new Database(server, "new database");
newdb.Create();
Transfer transfer = new Transfer(server.Databases["source database"]);
transfer.CopyAllObjects = true;
transfer.CopyAllUsers = true;
transfer.Options.WithDependencies = true;
transfer.DestinationDatabase = newdb.Name;
transfer.DestinationServer = server.Name;
transfer.DestinationLoginSecure = true;
transfer.CopySchema = true;
transfer.CopyData = true;
transfer.Options.ContinueScriptingOnError = true;
transfer.TransferData();
Triknya adalah mengatur properti DestinationDatabase. Ini harus ditetapkan bahkan jika targetnya sama dengan sumbernya. Selain itu, saya harus terhubung ke server sebagai instance bernama alih-alih menggunakan opsi koneksi lainnya.