SSIS - 为一批记录输入相同的编号

时间:2016-08-18 01:17:09

标签: sql-server ssis batch-processing

每日加载表中包含需要传输到历史表的新鲜每日数据。

历史记录表有一个额外的列“CSV_ID”,用于标识每日记录批次。例如,Daily表中的10条记录今天被转移到历史表中。所有这10条记录的CSV_ID均为1.第二天的批次将包含2作为其CSV_ID。

我是否使用带有表达式CSV_= =“”的派生列? 1:CSV_ID + 1

谢谢

1 个答案:

答案 0 :(得分:0)

假设问题是:"我有一张表,其中新记录的CSV_ID为空,我想将其设置为下一批号....?"

有几种方法可以做到这一点:
1.使用您想到的方法,但不是CSV_ID + 1,而是首先获得MAX值,然后将MAX+1应用于空值。
2.加载数据as is,然后将MAX+1应用于空的,如下所示:

UPDATE MyStagingTable 
SET CSV_ID = (SELECT MAX(CSV_ID)+1 FROM MyStagingTable)
WHERE CSV_ID = '';