Е, след като се свързах с поддръжката на Microsft, го накарах да работи правилно, но е бавен и повече или по-малко безполезен. Правенето на архивиране и след това възстановяването е много по-бързо и аз ще го използвам, докато новото копие трябва да живее на същия сървър като оригинала.
Работният код е както следва:
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();
Номерът беше да зададете свойството DestinationDatabase. Това трябва да бъде зададено дори ако целта е същата като източника. Освен това трябваше да се свържа със сървъра като наименуван екземпляр, вместо да използвам другите опции за свързване.