sql >> Databáze >  >> RDS >> Sqlserver

Použití SMO ke kopírování databáze a dat

No, po kontaktování podpory Microsft mi to funguje správně, ale je to pomalé a víceméně zbytečné. Provedení zálohy a následné obnovy je mnohem rychlejší a budu ji používat tak dlouho, dokud bude nová kopie žít na stejném serveru jako originál.

Pracovní kód je následující:

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();

Trik spočíval v nastavení vlastnosti DestinationDatabase. Toto musí být nastaveno, i když je cíl stejný jako zdroj. Navíc jsem se musel připojit k serveru jako pojmenovaná instance namísto použití jiných možností připojení.



  1. Kód chyby:1064 v mysql

  2. mysql:Jaká je správná syntaxe pro NOT LIKE?

  3. Jak použít operaci SUM bez seskupování výsledků v SQL?

  4. Jak uložit varbinary v MySQL?