using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; public class SQLSMO { public SQLSMO() { // // TODO: Add constructor logic here // } public static void AddDataBase(string SqlServer, string NewDataBase) { try { ServerConnection conn = new ServerConnection(SqlServer); Server server = new Server(conn); Database newdb = new Database(server, NewDataBase); newdb.Create(); conn.Disconnect(); } catch { throw; } } public static void DropDataBase(string SqlServer, string DataBase) { try { ServerConnection conn = new ServerConnection(SqlServer); Server server = new Server(conn); // Para que libere la base de datos que queremos borrar. server.KillAllProcesses(DataBase); Database db = new Database(server, DataBase); db.Refresh(); db.Drop(); conn.Disconnect(); } catch { throw; } } public static void CloneDataBase(string SqlServer, string NewDataBase, string SourceDataBase, bool empty) { try { ServerConnection conn = new ServerConnection(SqlServer); Server server = new Server(conn); Database newdb = new Database(server, NewDataBase); newdb.Create(); Transfer transfer = new Transfer(server.Databases[SourceDataBase]); transfer.CopyAllObjects = true; transfer.CopyAllUsers = true; transfer.Options.WithDependencies = true; transfer.DestinationDatabase = newdb.Name; transfer.DestinationServer = server.Name; transfer.DestinationLoginSecure = true; transfer.CopySchema = true; if (!empty) { transfer.CopyData = true; } else { transfer.CopyData = false; } transfer.Options.ContinueScriptingOnError = true; transfer.Options.IncludeIfNotExists = true; transfer.TransferData(); conn.Disconnect(); } catch { throw; } } }