【发布时间】:2017-11-14 05:01:15
【问题描述】:
我有一份定期运行的报告,并将其放入暂存数据库进行审核。它通过 Microsoft 的 SQL Server 集成服务进行处理,用于转换数据;但是,我想添加一个“ID”列,每次运行趋势报告时该列都会递增为整数,但到目前为止还不能真正弄清楚如何做到这一点。
目标不是为每一行分配一个新编号,而是为一次运行的所有行分配相同编号
理想情况下,通过 SSIS 中的派生列比更改 SQL 代码更容易,但我会考虑这两个选项。
RunID Name
----- |----------------
1 | A
1 | B
1 | C
1 | D
2 | A
2 | B
2 | C
3 | A
【问题讨论】:
-
数据是否从临时表中删除?你能做类似
RunID = (select max(RunID) from stg_table) + 1的事情吗? (注意是否还需要创建索引) -
如果您使用的是 2012 或更高版本,您可以使用序列对象,如果您使用的是 2008 或更低版本,则可以模拟一个。
-
根据您的描述,日期和时间可能比简单的整数更有用。
标签: sql sql-server ssis etl derived-column