从C#导出SQL Server数据库并重新导入

时间:2011-04-27 08:16:33

标签: c# sql-server

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

我知道这可以通过SQL Server Management Studio轻松完成,但需要一种自动化的方法来实现这一目标。

3 个答案:

答案 0 :(得分:3)

最快的方法是连接到服务器并执行SQL命令以直接备份和还原SQL Server数据库。 Google通过以下方式获取语法; 对于备份语法; tsql备份数据库msdn 对于恢复语法; tsql restore database 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维护计划可以在本地服务器之外执行备份和还原,并且可以安排在任何时间运行。您可能需要实现作业以将备份文件复制到备用服务器。在最坏的情况下,可以使用两台服务器上的计划组合。

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

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

答案 1 :(得分:1)

您要做的是使用常规连接对象(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 Server数据库。这是一个涵盖这些的教程:

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

答案 2 :(得分:1)

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