如何使用.Net创建SqlServer数据库备份?

时间:2011-03-17 09:17:09

标签: c# sql sql-server winforms backup

我想用这个C#代码进行数据库备份:

connect = new SqlConnection(con);
connect.Open();

// Execute SQL
SqlCommand command = new SqlCommand
(
    @"backup database MY_database to disk='d:\SQLBackup\wcBackUp1.bak' with init, stats=10",
    connect
);

command.ExecuteNonQuery();
connect.Close();

运行时,会显示以下错误消息:

无法打开备份设备'd:\ SQLBackup \ wcBackUp1.bak'。 操作系统错误3(系统找不到指定的路径。)。

如果我将路径更改为d:\wcBackUp1.bak它似乎没问题,没有错误,但文件不存在,则没有生成。

如果我在SQL中运行命令,我会收到100%处理的消息,但我没有看到该文件。

有人能帮帮我吗?

3 个答案:

答案 0 :(得分:5)

确保数据库服务器中存在“d:\ SQLBackup \”位置,而不是客户端计算机上存在。

答案 1 :(得分:3)

要检查两件事。

Sql Service可能无法访问d:\ sqlbackup文件夹。旧的Sql安装用于默认安装具有对机器的完全访问权限的服务,但是较新的实例会将其收紧。您可以尝试更改存储默认备份的目录的路径。

其次,如果sql server不在运行该程序的同一台机器上,那么你必须记住D:将是sql服务器上的D:而不是你的本地机器

答案 2 :(得分:0)

从根本上说,运行SQL Server服务的Windows帐户必须对指定的文件夹具有写入权限。

您可以通过在SQL Server服务下查看SQL Server配置管理器来查看这是什么帐户(查看“登录为”列)

使用资源管理器检查帐户对目标文件夹的实际权限 - >右键单击文件夹 - >属性 - >安全 - >高级 - >有效的权限。

检查这是问题的一种方法是将代码更改为备份到SQL实例的备份文件夹,其中权限可能是正确的。例如

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup
相关问题