我正在做一个涉及使用数据库的项目,并且我正在对它进行单元测试。现在,测试创建一个数据库作为一个.mdf文件并使用它。
我想做的是在其他地方复制这个.mdf文件,在每次测试之前,用我刚刚创建的副本替换原始的.mdf文件。问题是,当我尝试这样做时,它说该文件正在被另一个进程使用。我发现这个过程是sqlservr.exe。
我的问题是:是否有任何方法阻止服务器使用该文件,以便我可以替换它?我已经尝试过SQL Server备份和还原选项,但它们对我来说还不够好,因为它们大大降低了进程的速度。
任何帮助都将不胜感激。
更新:
好的,那么关于这个问题的更多信息。基本上,我正在努力提高我的单元测试的性能。大多数测试都需要与数据库的连接,因此我在.mdf文件中有一个.mdf。此文件是在TestFixtureSetup期间创建的。然后,在每次测试之前(在SetUp期间),通过SQL命令删除数据库。它似乎不是为每个测试重新创建一个新数据库的最有效的方法。到目前为止,我已经尝试了两种不同的方法:
sqlservr.exe进程,在本地复制文件并重新启动sqlservr.exe。这也有效,但也增加了执行时间。因此,基本上,我正在寻找关于如何提高重新创建一个完全空的数据库的性能的建议。
发布于 2016-08-16 07:11:25
.MDF文件并重新启动服务。更新:
若要启动、停止、暂停、恢复或重新启动Server浏览器或Server代理实例,请执行以下操作。
按照上面的说明启动Server配置管理器。如果出现“用户帐户控件”对话框,请单击“是”。
在“Server配置管理器”的左侧窗格中,单击“Server服务”。
在结果窗格中,右击命名实例的Server浏览器、Server代理(MSSQLServer)或Server代理(),
然后单击“开始”、“停止”、“暂停”、“继续”或“重新启动”。
单击“确定”关闭Server配置管理器。
更新:

https://stackoverflow.com/questions/38968479
复制相似问题