利用timestamp做增量数据导出的问题

soooon 2010-09-23 05:51:29
有个老系统,数据库是sqlsever2000。现需要每天定时对一些表做增量式数据导出,前提是不允许使用触发器,不允许动表结构。
研究了一下表结构,发现需要导出数据的表都有一个timestamp字段。想利用这个字段从表中找出增量数据。具体做法如下:

对某个表做导出时,记录下本次导出的最后一行数据的timestamp值。当下次执行导出时,找表中比这个timestamp大的数据,并按timestamp字段正序排序后导出,再次记录timestamp值。

这种方法可行吗?有漏洞吗?
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
billpu 2010-09-24
  • 打赏
  • 举报
回复
我觉得这个应该是个不错的办法,看楼主的需求,关键是对原表不能更改结构(不能加触发器),不然添加个字段用触发器操作是简单的,可以省掉很多麻烦.
lcw321321 2010-09-24
  • 打赏
  • 举报
回复
USE [tempdb]
GO
CREATE TABLE [dbo].[A](
[AA] [timestamp] NOT NULL,
[BB] [nchar](10) NULL
) ON [PRIMARY]

GO
INSERT INTO A(BB) VALUES('AA')

SELECT * FROM A

UPDATE A SET BB='DD'

SELECT * FROM A

当你UPDATE 一行的任何列的时候timestamp 的值会发生改变的,也就是说你的增量导出可能会重复修改的部分。
「已注销」 2010-09-23
  • 打赏
  • 举报
回复
帮顶~~
claro 2010-09-23
  • 打赏
  • 举报
回复
或许,为何不用datetime。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧