SQL Server备份命令错误

时间:2012-03-30 19:22:01

标签: sql database visual-studio-2010 tsql backup

我正在尝试在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

有没有人能解决我的问题? 谢谢!

2 个答案:

答案 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