static void Main(string[] args) { var connectionStringResolver = new ConnectionResolver(args); var dbName = connectionStringResolver.ResolveDatabase(); var sqlCloseConnections = string.Format(@"ALTER DATABASE {0} SET SINGLE_USER WITH ROLLBACK IMMEDIATE", dbName); var sqlDropDatabase = string.Format(@"DROP DATABASE [{0}]", dbName); var sqlCreateDatabase = string.Format(@"CREATE DATABASE [{0}]", dbName); var connectionString = connectionStringResolver.ResolveConnectionString(); using (var connection = new SqlConnection(connectionString)) { try { Console.WriteLine("Abrindo conexão com banco de dados"); connection.Open(); Console.WriteLine("Conexão aberta"); Console.WriteLine(); RemoveActiveConnections(dbName, connection, sqlCloseConnections); Console.WriteLine(); DropDatabase(connection, dbName, sqlDropDatabase); Console.WriteLine(); CreateDatabase(dbName, connection, sqlCreateDatabase); } catch (Exception e) { connection.Close(); ReportErrorAndCloseConnection(e, connection); throw; } } }
static void Main(string[] args) { var connectionStringResolver = new ConnectionResolver(args); var dbName = connectionStringResolver.ResolveDatabase(); var sqlCloseConnections = string.Format(@"ALTER DATABASE {0} SET SINGLE_USER WITH ROLLBACK IMMEDIATE", dbName); var sqlDropDatabase = string.Format(@"DROP DATABASE [{0}]", dbName); var sqlCreateDatabase = string.Format(@"CREATE DATABASE [{0}]", dbName); var connectionString = connectionStringResolver.ResolveConnectionString(); using (var connection = new SqlConnection(connectionString)) { try { Console.WriteLine("Abrindo conexão com banco de dados"); connection.Open(); Console.WriteLine("Conexão aberta"); Console.WriteLine(); RemoveActiveConnections(dbName, connection, sqlCloseConnections); Console.WriteLine(); DropDatabase(connection, dbName, sqlDropDatabase); Console.WriteLine(); CreateDatabase(dbName, connection, sqlCreateDatabase); } catch (Exception e) { connection.Close(); ReportErrorAndCloseConnection(e, connection); throw; } } }