繁体   English   中英

从 C# 导出 SQL 服务器数据库并重新导入

[英]Export a SQL Server database from C# and re-import

我正在寻找一种在 C# 代码中创建 SQL Server 2008 数据库备份的方法。 然后我希望再次使用 C# 代码将此数据库重新导入到本地数据库服务器。

我知道这可以通过 SQL Server Management Studio 很容易地完成,但需要一种自动化的方式来实现这一点。

最快的方法是连接到服务器并直接执行 SQL 命令来备份和恢复 SQL 服务器数据库。 谷歌以下获取语法; 对于备份语法; tsql 备份数据库 msdn 用于恢复语法; tsql 恢复数据库msdn

不过,还有其他选择;

  1. 使用 SMO(SQL 管理对象),一个用于帮助管理来自 .Net 应用程序的 SQL 的 .Net 库。 这是一个链接,其中包含指向一些有用的参考材料的许多链接; http://social.msdn.microsoft.com/Forums/en-US/sqlsmoanddmo/thread/5638666e-cd2e-467d-bd03-6d20e2cbbe1b/

  2. 使用 SQL 本身。 您是否知道 SQL 维护计划可以在本地服务器之外的多个服务器上执行备份和还原,并且可以安排在任何时间运行。 您“可能”还需要执行一项工作以将备份文件复制到备用服务器。 在最坏的情况下,可以使用两台服务器上的计划组合。

我的偏好是首先尝试维护计划 考虑这样一个事实,即 DBA 会看到它知道它并能够对其进行更改以适应业务环境。 您还可以在失败时挂起通过电子邮件发送/记录的错误消息,这都是内置功能。

如果您真的想要或必须编写应用程序,请考虑 SQL 命令选项,因为 SMO 仅限于 SQL 服务器的特定版本。 旧版本使用 DMO。 不知道下一个版本会是什么=)

您要做的是使用常规连接对象( SqlConnection等)从 C# 对主数据库运行几个脚本。

有用于备份的命令和用于从文件恢复的命令。 然后,您需要做的就是管理应用程序中的文件。

恢复:

http://blog.sqlauthority.com/2007/02/25/sql-server-restore-database-backup-using-sql-script-t-sql/

要备份:

http://msdn.microsoft.com/en-us/library/ms191304.aspx

还有一组来自 Microsoft 的 DLL,用于处理不属于 ADO.NET 提供程序集的 SQL 服务器数据库。 这是一个涵盖这些的教程:

http://www.codeproject.com/KB/database/SQL_Server_2005_Database.aspx

一个更简单的解决方案是编写一个 SSIS package 来轻松完成这项工作。 (作为维护计划)然后通过 .NET 应用程序(web 或 winform),您可以使用参考 Microsoft.SQlServer.ManagedDTS 控制 package 的调用,或使用控制台应用程序并安排它每隔 x 次运行以自动化您的过程。 如果您不想使用 C#,那么只需安排您的维护计划的工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM