为什么我们需要为备份创建存储过程?

时间:2011-08-01 06:25:32

标签: c# sql-server

是否可以使用Sql Server 2005/2008使用存储过程备份数据库? 它的存储过程是什么......以及我的项目需要在我的项目中创建此类过程的场景是什么? 前端语言是C#.Net,后端是sql server。 任何人都可以指导我...提前致谢..

4 个答案:

答案 0 :(得分:4)

您可以创建自己的存储过程:

CREATE PROCEDURE sp_MyBackup
AS BEGIN
  BACKUP DATABASE myDatabase to disk='c:\BACKUP\myDatabase.bak'
END

然后您可以从T-SQL代码执行此过程:

exec sp_MyBackup

编辑: 要在c#中执行存储过程,您需要执行以下操作:

SqlConnection c= new SqlConection ( connectionstring );
c.Open();
SqlCommand cmd = new SqlCommand ("sp_MyBackup", c);
cmd.CommadType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
c.Close();

再次编辑:我认为,前端应用程序可以使用SP创建备份以实现下一个场景:在批量更新操作(导入数据,批量清理等)之前,用户可以从应用程序开始备份。在这种情况下,用户不需要相应的sql-server和数据库权限,他不能拥有任何数据库工具和sql知识,但可以进行备份。

答案 1 :(得分:0)

您可以使用“MDF和LDF”文件或获取特定数据库的“.bak”文件来收回数据库,这将涵盖所有表格,存储过程和函数。

前端:C# 后端:Sql Server

Ado.Net充当前端和后端之间的桥梁。

在数据库管理系统(DBMS)中,存储过程是一组结构化查询语言(SQL)语句,其具有指定的名称,该名称以编译的形式存储在数据库中,以便可以由许多程序共享。存储过程的使用有助于控制对数据的访问(最终用户可以输入或更改数据但不编写过程),保持数据完整性(以一致的方式输入信息),并提高生产率(存储中的语句)程序只需要写一次)。

这将由C#使用SqlCommand对象

调用

http://www.exforsys.com/tutorials/vb.net-2005/access-and-manipulate-sql-server-data-using-stored-procedures.html

答案 2 :(得分:0)

如果您想在数据库服务器上启动每小时/每晚/每周/某些时间备份,则可能出现这种情况。

然后,您可以编写一个脚本(例如powershell)来执行启动备份的存储过程。

这与您的实际应用程序无关。您的应用程序不应关心或关注备份。这是一项维护/管理任务,应在数据库服务器上处理。

Have a google to find out how to do it

答案 3 :(得分:0)

除非您为DBA和支持人员创建实用程序,否则我可以想到这样做的几个原因。在多用户环境中,允许非专家用户启动备份几乎肯定不是一个好主意。

如果您只是想允许用户创建恢复点或保存数据库版本,那么我建议您创建一个transaction log mark。假设您在完全恢复模式下运行,与允许用户自行备份相比,日志标记将更快,更容易支持。