2012-03-30 85 views
1

我试图在Visual Studio中创建我的SQL Server数据库的备份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

有谁有我的问题的解决方案? 谢谢!

回答

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"/> 
+0

谢谢你!我感谢您的帮助。 – user1303992 2012-04-06 18:23:14

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