如何查询Asp.Net正在使用的数据库

时间:2010-09-08 03:03:18

标签: asp.net sql-server

我有一个ASP.NET应用程序当前正在使用的Sql Server 2008 Express数据库文件,我不知道如何在不关闭网站的情况下查询数据库。

我无法将数据库文件(.mdf和.ldf文件)复制到另一个目录,因为Web服务器正在使用它们。另外,如果我将数据库附加到sql server的一个实例(使用'create database [DB name] on(filename ='[DB filename.mdf]')for attach;'命令在sqlcmd提示符下),那么应用程序池用户变得无法访问数据库(即网页开始产生http 500错误。我认为这可能与应用程序池的用户名在某种程度上脱离了sql server数据库中的登录凭据有关。)

有什么建议吗?我意识到这可能是一个新手问题,因为它似乎是一项相当基本的任务。然而,由于我的经验不足,我真的不知道答案是什么,而且我现在很难过,因为我尝试了几件不同的事情。

谢谢!

安德鲁

1 个答案:

答案 0 :(得分:1)

  

如果我将数据库附加到sql server的实例(使用'create database [DB name] on(filename ='[DB filename.mdf]')for attach;'命令在sqlcmd提示符下),< / p>

不要对实时数据库执行此操作 - 它正在尝试设置由两个不同数据库写入的MDF ...

使用备份/恢复

正如您所发现的,Attach / ReAttach要求数据库脱机 - 使用备份/恢复功能:

请注意,备份/恢复不会保留登录(如果您有任何与数据库关联的作业),则必须重新创建&amp;如果使用非超级用户的帐户,请进行同步。

也许Linked Server可以工作?

另一种方法是在另一个框上设置另一个SQL Server Express / etc实例,并使用Linked Server functionality创建与live / prod数据的连接。使用与ASP应用程序不同的帐户...