仅备份新记录或已编辑的记录

时间:2009-12-02 02:54:27

标签: sql-server-express bcp database-replication insert-update

我已经构建了一个SQL Server Express数据库,该数据库将被放置在外部高清上。我需要能够在我的系统上的数据库以及其他系统上添加/更新数据,然后仅备份或传输已添加或编辑到外部硬盘驱动器的数据。实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

您可能会使用复制,但是当您使用SQL Server Express时,这不是一个选项。

您需要某种机制来确定备份之间的变化。因此,每个表都需要一个时间戳或上次更新的日期时间列,每次插入或更新记录时都会更新。从触发器而不是从应用程序更新此列可能更容易。

一旦您知道插入或更新了哪些记录,那么只需从上次执行操作时搜索这些记录即可。

另一种方法是添加一个更新的位列,但这似乎不太灵活。

答案 1 :(得分:0)

雪莉,请解释一下申请表以及您的设计理由。数据库没有任何机制来执行此操作。您必须自己跟踪更改,然后执行您需要执行的操作。 SQL Server 2008内置了更改跟踪功能,但我认为这不会对Express有所帮助。

另外,请查看Sync Framework。将此添加到您的平台是一个主要的有效负载,但如果保持数据同步是您的应用程序的主要目标之一,它可能会为您带来回报。

答案 2 :(得分:0)

在应用程序中

如果从应用程序执行此操作,则每次更新或插入行时 - 修改名为dirty的bit / bool列并设置为true。选择要导出的行时,只选择脏设置为true的列。导出后,将所有脏列设置为false。

在应用程序之外

DTS向导

如果您在应用程序之外执行此操作,请在命令行运行:

Run  "C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTSWizard.exe" 

这个article解释了如何获取DTS向导(默认情况下不包括它)。

  

它包含在SQL Server中   Express Edition Toolkit - 仅限   那。你已经安装了另一个   SSE的版本,它可以正常工作   之后安装此包   没有卸载其他人。得到   在这里:   http://go.microsoft.com/fwlink/?LinkId=65111

     

DTS向导包含在   选项“商业智能   开发工作室“所以一定要   选择安装

     

如果您安装了其他版本   对于SSE,安装程序可能会报告   没有什么可以安装的。   通过选中复选框来覆盖此项   显示版本号(在   安装程序向导)

     

安装完成后,DTS   向导可在   c:\\ Microsoft SQL   Server \ 90 \ DTS \ Binn \ dtswizard.exe你   可能想要制作快捷方式,甚至是   将它包含在SQL的工具菜单中   工作室。

bcp Utility

  

bcp实用程序在Microsoft SQL Server实例和数据>之间批量复制数据。以用户指定的格式提交文件。 bcp实用程序可用于导入大量的> SQL Server表中的新行或将表中的数据导出到数据文件中。除了>与queryout选项一起使用时,该实用程序不需要Transact-SQL知识。   要将数据导入表格,您必须使用为该表格创建的格式文件或>了解表的结构以及对其有效的数据类型   列。