【发布时间】:2010-01-12 17:07:05
【问题描述】:
我有来自 datastage 的数据,这些数据被放入我们的 SQL Server 2008 数据库中的表中:stg_table_outside_data。我们的来源每天早上都将数据放入该表中。我想将数据从stg_table_outside_data 移动到table_outside_data,在那里我保留了多天的数据。
我创建了一个存储过程,将stg_table_outside_Data 中的数据插入table_outside_data,然后截断stg_table_outside_Data。外部的 datastage 进程不在我的控制范围内,所以我必须在 SQL Server 2008 中完成这一切。我原本计划使用一个简单的 after insert 语句,但 datastage 在每 100,000 行之后执行一次提交。触发器将在第一次提交后运行,并导致数据阶段进程出现死锁错误。
有没有办法设置插入后等待 30 分钟,然后确保在该时间范围内没有新的提交?我的问题有更好的解决方案吗?目标是将数据从暂存表中取出并进入工作表而不重复,然后截断暂存表以供第二天早上的负载使用。
感谢您的宝贵时间和帮助。
【问题讨论】:
标签: sql-server sql-server-2008 triggers datastage