Nå, efter at have kontaktet Microsft Support fik jeg det til at fungere korrekt, men det er langsomt og mere eller mindre ubrugeligt. At lave en backup og derefter en gendannelse er meget hurtigere, og jeg vil bruge det, så længe den nye kopi skal leve på samme server som originalen.
Arbejdskoden er som følger:
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();
Tricket var at indstille egenskaben DestinationDatabase. Dette skal indstilles, selvom målet er det samme som kilden. Derudover skulle jeg oprette forbindelse til serveren som en navngivet instans i stedet for at bruge de andre forbindelsesmuligheder.