首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖.mdf文件

如何覆盖.mdf文件
EN

Stack Overflow用户
提问于 2016-08-16 07:01:19
回答 1查看 1.3K关注 0票数 1

我正在做一个涉及使用数据库的项目,并且我正在对它进行单元测试。现在,测试创建一个数据库作为一个.mdf文件并使用它。

我想做的是在其他地方复制这个.mdf文件,在每次测试之前,用我刚刚创建的副本替换原始的.mdf文件。问题是,当我尝试这样做时,它说该文件正在被另一个进程使用。我发现这个过程是sqlservr.exe

我的问题是:是否有任何方法阻止服务器使用该文件,以便我可以替换它?我已经尝试过SQL Server备份和还原选项,但它们对我来说还不够好,因为它们大大降低了进程的速度。

任何帮助都将不胜感激。

更新:

好的,那么关于这个问题的更多信息。基本上,我正在努力提高我的单元测试的性能。大多数测试都需要与数据库的连接,因此我在.mdf文件中有一个.mdf。此文件是在TestFixtureSetup期间创建的。然后,在每次测试之前(在SetUp期间),通过SQL命令删除数据库。它似乎不是为每个测试重新创建一个新数据库的最有效的方法。到目前为止,我已经尝试了两种不同的方法:

  1. 使用SQL备份和还原命令。这是可行的,但它会增加测试的执行时间。
  2. 杀死sqlservr.exe进程,在本地复制文件并重新启动sqlservr.exe。这也有效,但也增加了执行时间。

因此,基本上,我正在寻找关于如何提高重新创建一个完全空的数据库的性能的建议。

EN

回答 1

Stack Overflow用户

发布于 2016-08-16 07:11:25

  • 您可以停止服务,复制.MDF文件并重新启动服务。
  • 您还可以分离数据库,复制它,并重新附加它。
  • 您还可以备份数据库。

更新:

若要启动、停止、暂停、恢复或重新启动Server浏览器或Server代理实例,请执行以下操作。

按照上面的说明启动Server配置管理器。如果出现“用户帐户控件”对话框,请单击“是”。

在“Server配置管理器”的左侧窗格中,单击“Server服务”。

在结果窗格中,右击命名实例的Server浏览器、Server代理(MSSQLServer)或Server代理(),

然后单击“开始”、“停止”、“暂停”、“继续”或“重新启动”。

单击“确定”关闭Server配置管理器。

更新:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38968479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档