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();
            }
        }
Example #2
0
        public static DropDatabaseStatement DropDatabase(bool isIfExistss, IEnumerable <Identifier> databases)
        {
            var fragment = new DropDatabaseStatement
            {
                IsIfExists = isIfExistss
            };

            fragment.Databases.AddRange(databases);
            return(fragment);
        }
Example #3
0
 public override void Visit(DropDatabaseStatement node) { this.action(node); }
 public override void ExplicitVisit(DropDatabaseStatement fragment)
 {
     _fragments.Add(fragment);
 }