我正在尝试在Visual Studio 2010中创建SQL Server数据库的备份。
我使用以下命令备份数据库:
BACKUP DATABASE Db TO DISK ='c:\ server.bak'
这是我正在使用的连接字符串。
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Db.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
但是,当我运行该命令时,我收到以下错误消息。
数据库'Db'不存在。
以下是描述我的错误的屏幕截图:
http://www.cs.purdue.edu/homes/aerfanfa/sqlerror.jpg
有没有人能解决我的问题? 谢谢!
答案 0 :(得分:1)
问题是:您的数据库db.mdf
不附加到SQL Server Express实例 - 因此,您无法对其进行备份。
如果你问我这整个AttachDbFileName=.....
故事有点棘手 - 而且非常混乱。
我建议忘记使用AttachDbFileName=...
内容,而不是:
只需将db.mdf
文件附加到本地SQL Server Express实例(使用SQL Server Management Studio Express)
使用逻辑数据库名称与附加数据库交谈,而不是使用.mdf
文件搞乱
完成后 - 然后,您可以使用BACKUP DATABASE ...
之类的命令以及其他所有内容!
您的连接字符串也会更简单!
<add name="ConnectionString"
connectionString="Server=.\SQLEXPRESS;Database=YourDatabaseName;Integrated Security=True;"
providerName="System.Data.SqlClient"/>
答案 1 :(得分:0)
尝试右键单击Manament studio中的数据库,选择任务,然后选择“备份”。设置参数后,您可以选择“脚本”,它将为您提供正确的备份脚本。
备份脚本类似于:
BACKUP DATABASE [Db] TO DISK =
N'C:\Server.bak'
WITH NOFORMAT, INIT, NAME = N'Db Backup', SKIP, NOREWIND, NOUNLOAD,
STATS = 10
GO