我在SQL Server中创建日志表的任务很小,它只保留差异,因为我每秒钟都会记录流数据,而且大多数时候,差异将非常小。DateIndex和1列值的更改。
示例:
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有没有办法让表格只写上差,而不是整行?
发布于 2018-11-01 16:30:02
根据您的需求和Server版本,这听起来像是变更数据捕获 (疾控中心)的工作,可在Server 2008及以上版本中使用,也可用于Server 2016及以上版本的时态表。
CDC使用事务日志在数据库的系统表区域捕获系统生成的更改日志中的插入、更新和删除,并在可配置的时间内保留数据。默认情况是三天,但您可以根据需要将其设置为尽可能长或尽可能短的时间。该表包含用于更新的所有插入、所有删除和前后快照。
使用时态表,将在数据库的主表区域中创建历史表。主时态表包含数据的当前状态,历史表包含所有更改。时态表使您能够编写一个查询,该查询将返回在某个时间点存在的数据。不过,在开箱即用的时间开始时,它会存储数据,因此在高流应用程序中它可能会有点存储密集型。
我会先看看这两个,然后再开始一个自己的解决方案。
发布于 2018-11-01 15:47:04
不是,但是如果您想将当前数据实际写入表中,则可以通过触发器自动生成三角形。不过,还是要把这些写到一个合适的桌子上,这是不可能的。
https://stackoverflow.com/questions/53104489
复制相似问题