gpt4 book ai didi

sql-server - 回填临时表

转载 作者:行者123 更新时间:2023-12-03 09:40:28 26 4
gpt4 key购买 nike

去年我用的是我自己的手卷“时态”表。因此,在 2017 年 1 月,我进行了原始数据导入并执行了插入、更新和删除操作。 2017 年 2 月,我使用 2 月的原始数据文件做了同样的事情。我在 2017 年 12 月(包括 2017 年 12 月)的整个月中都这样做了。

我有用于导入的所有原始月末数据文件,现在我想废弃垃圾手工滚动的“时态”表解决方案并使用 Microsoft 提供的时态表。我的问题是我需要将计算机系统日期设置回 2017 年 1 月,执行 2017 年 1 月的 ETL,将系统日期更改为 2017 年 2 月,执行 2017 年 2 月的 ETL,将系统日期更改为 2017 年 3 月,执行 2017 年 3 月的 ETL等等等等

除了更改系统日期还有其他选择吗?

最佳答案

您无需更改服务器时间即可获得正确的时间。

过程如下所述。

  1. 首先为每个表创建所有历史表(结构与使用默认历史表创建时态表的结构相同)。
  2. 为所有历史表创建索引(结构与使用默认历史表创建时态表的结构相同)。
  3. 直接填充历史表,包括具有所需日期时间值的 SysStartTime、SysEndTime 列
  4. 更改表以启用版本控制,指定历史表。

https://learn.microsoft.com/en-us/sql/relational-databases/tables/creating-a-system-versioned-temporal-table

(参见将非时态表更改为系统版本时态表段落)

或者,您可以:

  1. 删除并重新创建启用版本控制的所有表(指定您自己的(非默认)历史表)
  2. 运行 ETL
  3. 暂时停止版本控制
  4. 更新历史表以获得正确的 SysStartTime/SysEndTime 值
  5. 重新启用版本控制(指定现有历史表)

关于sql-server - 回填临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49415835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com