我正在使用Selenium Web驱动程序编写一些测试。 每个测试必须通过不同的数据集。 因此决定重新安装预定义的数据库以进行相关测试。
编写如下方法
public static void DB_restore(String backupfile) throws Exception {
String discont = "alter database DB_NAME set offline with rollback immediate";
String reconct = "alter database DB_NAME set online";
String restodb = "RESTORE DATABASE DB_NAME FROM DISK = '"+backupfile+"' WITH REPLACE,RECOVERY " ;
Class.forName(DBClass);
connection = DriverManager.getConnection(DB_URLMaster);
System.out.println(connection.toString()+"***********************");
if (connection == null) {
System.out.println("Data Base connection failed");
}
statement = connection.createStatement();
statement.execute(discont);
statement.execute(reconct);
statement.execute(restodb);
Thread.sleep(20000);
}
这最初似乎不起作用。但实际上发现它重新安装了数据库。 Web应用程序仍如何使用以前版本的数据库。
当我重新启动IIS时,已安装的(新版本)数据库就会启动
但是,如果我手动(使用Management Studio)重新安装数据库,则不会出现这种问题。
这背后的逻辑是什么? 如何避免重新启动IIS?
我正在 IIS 10.0.16299 , SQLServer 2012 , sqljdbc42 .jar
上运行