private void DropWorkDb(SqlConnectionStringBuilder connectionStringBuilder, string newDbName) { connectionStringBuilder.InitialCatalog = "master"; using (var sqlConnection = new SqlConnection(connectionStringBuilder.ConnectionString)) { sqlConnection.Open(); var dropDatabaseStatement = new DropDatabaseStatement(); dropDatabaseStatement.Databases.Add(new Identifier { Value = newDbName }); var scriptGen = new Sql120ScriptGenerator(); scriptGen.GenerateScript(dropDatabaseStatement, out var dropDatabaseScriptOut); var sqlCommandEnableDrop = new SqlCommand($"ALTER DATABASE [{newDbName}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE", sqlConnection); sqlCommandEnableDrop.ExecuteNonQuery(); var sqlCommanDropDatabase = new SqlCommand(dropDatabaseScriptOut, sqlConnection); sqlCommanDropDatabase.ExecuteNonQuery(); sqlConnection.Close(); } }
public static DropDatabaseStatement DropDatabase(bool isIfExistss, IEnumerable <Identifier> databases) { var fragment = new DropDatabaseStatement { IsIfExists = isIfExistss }; fragment.Databases.AddRange(databases); return(fragment); }
public override void Visit(DropDatabaseStatement node) { this.action(node); }
public override void ExplicitVisit(DropDatabaseStatement fragment) { _fragments.Add(fragment); }