任何人都可以帮助我如何从vb.net恢复数据库,我尝试通过从sql server2005获取retore模板脚本来使用存储过程进行恢复。但是有错误“数据库已经在使用中请使用主数据库..”
答案 0 :(得分:2)
我假设您使用了通常用于连接到实际还原的数据库的相同连接字符串。 从您的错误消息,我会说您应该使用不同的InitialCatalog参数创建与服务器的连接(错误消息表明您应该使用“master”)。
另一种选择是在脚本的开头粘贴一个“USE master”。 Here是对USE声明的一个小描述。
答案 1 :(得分:0)
从错误中看,实际的VB.net程序错误看起来不像 似乎问题出在数据库恢复存储过程上。
在恢复数据库之前,请确保
•您的连接未使用要还原的数据库 - 这是导致该错误的可能原因之一,“数据库已在使用中,请使用主数据库..”
•应关闭与目标数据库的其他连接 - 关闭与其的所有连接。
Denis Troller提到了"USE master",并确保您的脚本将该语句作为还原批处理脚本中的“第一”语句。
答案 2 :(得分:0)
我刚刚在我的项目中写了这个,所以我想我会分享我的方法。
我通过使用SqlCommand.CommandText在服务器上触发SQL并为数据库和文件名设置SqlParameters来调用备份和恢复,如下所示:
简单备份:
BACKUP DATABASE @dbName TO DISK=@fileName WITH FORMAT
然后使用以下命令恢复它:
USE master RESTORE DATABASE @dbName FROM DISK = @fileName
BACKUP和RESTORE命令有很多选项,但我只想要一个快速的大锤方法,这很好用。
感谢Denis提供的'USE master'提示,它只修复了我的“使用中”错误!