我已经构建了一个 SQL Server Express 数据库,该数据库将被安装在外部硬盘上。我需要能够在我的系统以及其他系统上的数据库上添加/更新数据,然后只备份或传输已添加或编辑到外部硬盘驱动器的数据。实现这一目标的最佳方法是什么?
3 回答
您可能会为此使用复制,但由于您使用的是 SQL Server express,因此这不是一个选项。
您需要某种机制来确定备份之间发生了什么变化。因此,每个表都需要一个时间戳或上次更新日期时间列,每次插入或更新记录时都会更新该列。从触发器而不是从您的应用程序更新此列可能更容易。
一旦您知道插入或更新了哪些记录,那么只需从上次执行操作时开始搜索这些记录。
另一种方法是添加一个已更新的位列,但这似乎不太灵活。
Sherry,请解释一下应用程序以及您设计的基本原理。数据库没有任何机制来执行此操作。您必须自己跟踪更改,然后做任何您需要做的事情。SQL Server 2008 内置了更改跟踪功能,但我认为这对 Express 没有帮助。
另外,看看Sync Framework。将其添加到您的平台是一个主要的有效负载,但如果保持数据同步是您的应用程序的主要目标之一,它可能会为您带来回报。
在一个应用程序中
如果您在应用程序中执行此操作,则每次更新或插入行时 - 修改名为脏的位/布尔列并将其设置为 true。当您选择要导出的行时,请仅选择脏设置为 true 的列。导出后,将所有脏列设置为 false。
在应用程序之外
DTS 向导
如果您在应用程序之外执行此操作,请在命令行中运行:
Run "C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTSWizard.exe"
本文介绍如何获取 DTS 向导(默认情况下不包含它)。
它包含在 SQL Server Express Edition 工具包中——而且仅此而已。如果您已经安装了另一个版本的 SSE,那么之后安装这个包就可以正常工作,而无需卸载其他包。在此处获取:http: //go.microsoft.com/fwlink/ ?LinkId=65111
DTS 向导包含在“Business Intelligence Development Studio”选项中,因此请务必选择该选项进行安装
如果您安装了其他版本的 SSE,安装程序可能会报告没有要安装的内容。通过选中显示版本号的复选框来覆盖它(在安装程序向导中)
安装完成后,可以在 c:\\Microsoft SQL Server\90\DTS\Binn\dtswizard.exe 找到 DTS 向导,您可能想要创建一个快捷方式,甚至将其包含在 SQL Studio 的工具菜单中。
bcp 实用程序以用户指定的格式在 Microsoft SQL Server 实例和数据 > 文件之间批量复制数据。bcp 实用程序可用于将大量 > 新行导入 SQL Server 表或将数据从表中导出到数据文件中。除了 > 与 queryout 选项一起使用时,该实用程序不需要 Transact-SQL 知识。要将数据导入表中,您必须使用为该表创建的格式文件,或者 > 了解表的结构以及对其列有效的数据类型。