首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅保留差异的Server表

仅保留差异的Server表
EN

Stack Overflow用户
提问于 2018-11-01 15:35:38
回答 2查看 52关注 0票数 0

我在SQL Server中创建日志表的任务很小,它只保留差异,因为我每秒钟都会记录流数据,而且大多数时候,差异将非常小。DateIndex和1列值的更改。

示例:

代码语言:javascript
复制
DateIndex C1 C2  C3 C4 C5 C6 C7
---------------------------------
1         1   2  3  4  5  6  7.0
2         1   2  3  0  5  6  7.1
3         1   0  3  4  5  6  7.3

有没有办法让表格只写上差,而不是整行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-01 16:30:02

根据您的需求和Server版本,这听起来像是变更数据捕获 (疾控中心)的工作,可在Server 2008及以上版本中使用,也可用于Server 2016及以上版本的时态表

CDC使用事务日志在数据库的系统表区域捕获系统生成的更改日志中的插入、更新和删除,并在可配置的时间内保留数据。默认情况是三天,但您可以根据需要将其设置为尽可能长或尽可能短的时间。该表包含用于更新的所有插入、所有删除和前后快照。

使用时态表,将在数据库的主表区域中创建历史表。主时态表包含数据的当前状态,历史表包含所有更改。时态表使您能够编写一个查询,该查询将返回在某个时间点存在的数据。不过,在开箱即用的时间开始时,它会存储数据,因此在高流应用程序中它可能会有点存储密集型。

我会先看看这两个,然后再开始一个自己的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2018-11-01 15:47:04

不是,但是如果您想将当前数据实际写入表中,则可以通过触发器自动生成三角形。不过,还是要把这些写到一个合适的桌子上,这是不可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53104489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档