sql >> Database >  >> RDS >> Sqlserver

SMO gebruiken om een ​​database en gegevens te kopiëren

Welnu, nadat ik contact had opgenomen met Microsft Support kreeg ik het goed werkend, maar het is traag en min of meer nutteloos. Het maken van een back-up en vervolgens een herstel is veel sneller en ik zal het gebruiken zolang de nieuwe kopie op dezelfde server als het origineel moet staan.

De werkende code is als volgt:

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

De truc was om de eigenschap DestinationDatabase in te stellen. Dit moet worden ingesteld, zelfs als het doel hetzelfde is als de bron. Bovendien moest ik verbinding maken met de server als een benoemde instantie in plaats van de andere verbindingsopties te gebruiken.



  1. Verbind SAP IQ met SQL Server

  2. Hoe maak je een back-up van je Moodle MySQL-database

  3. ASCII()-functie in Oracle

  4. Een MySQL-schema-parser in Java?