我有一个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数据库中的登录凭据有关。)
有什么建议吗?我意识到这可能是一个新手问题,因为它似乎是一项相当基本的任务。然而,由于我的经验不足,我真的不知道答案是什么,而且我现在很难过,因为我尝试了几件不同的事情。
谢谢!
安德鲁
答案 0 :(得分:1)
如果我将数据库附加到sql server的实例(使用'create database [DB name] on(filename ='[DB filename.mdf]')for attach;'命令在sqlcmd提示符下),< / p>
不要对实时数据库执行此操作 - 它正在尝试设置由两个不同数据库写入的MDF ...
正如您所发现的,Attach / ReAttach要求数据库脱机 - 使用备份/恢复功能:
请注意,备份/恢复不会保留登录(如果您有任何与数据库关联的作业),则必须重新创建&amp;如果使用非超级用户的帐户,请进行同步。
另一种方法是在另一个框上设置另一个SQL Server Express / etc实例,并使用Linked Server functionality创建与live / prod数据的连接。使用与ASP应用程序不同的帐户...