从C#备份和还原SQL Server表

时间:2009-03-05 02:49:32

标签: c# asp.net sql-server

在我正在构建的webapp中,我需要从SQL Server数据库备份和恢复大约10-15个表。

我的解决方案..

-Backup:对于每个表,填充数据集,将其序列化为文件

-Restore:将文件反序列化为数据集并使用SQLBulkCopy

这是实现我的目标最好的吗?

3 个答案:

答案 0 :(得分:4)

您可以使用SQLSMO备份/还原整个SQL Server数据库。约翰帕帕的article详细介绍了它。

您还可以以编程方式对DB运行BACKUP / RESTORE命令。

答案 1 :(得分:2)

你能不能简单地在(备份)数据库表之间来回移动/复制数据?为什么要处理文件?

IMO数据库几乎肯定是存储备份数据的最佳位置。它可以位于同一个数据库(Customer>> CustomersBak)中,也可以将数据复制到一个小型数据库。

恢复数据时可能遇到的两个问题:

1)正如sambo所提到的,身份栏。

2)外键约束与其他表可能不同步并阻止您刷新原始表

答案 2 :(得分:1)

您需要确保考虑以下事项。

  1. 架构发生变化时会发生什么?你如何升级数据?
  2. 如果任何表都有标识列,则需要确保在加载数据之前先插入标识符。
  3. 注意触发器,根据您的设置,在批量加载过程中可能会或可能不会触发它们。