根据列中的日期填充代理 Datekey

Populate surrogate Datekey based on Date in a column

我创建了一个table

CREATE TABLE myTable(
DateID INT PRIMARY KEY NOT NULL,
myDate DATE)

然后我想使用 SSIS 中的暂存 table 中的数据填充 table。问题是我不明白如何根据来自分段 table 的传入值生成 DateID。例如: 在暂存 table 插入 2020-12-12 之后,我希望我的 DateID 变为 20201212 等等。

我试图 google 这个问题,但没有找到与我的案例相关的任何内容。 (但我不否认我做得不好)。我该怎么做?

您可以使用持久计算列:

CREATE TABLE myTable (
     DateID AS (YEAR(myDate) * 10000 + MONTH(myDate) * 100 + DAY(myDate)) PERSISTED PRIMARY KEY,
     myDate DATE
);

Here 是一个 db<>fiddle.