如何完成这种插入以及插入和更新策略?

时间:2018-10-14 21:27:48

标签: stored-procedures sql-server-2012 sql-update backup sql-insert

对存储过程进行编程并不是我编程的长处,但是我正在努力变得更好。 我偶然发现了一个对我来说很难的业务需求,我想知道是否有人在职业生涯中已经处理过这个需求。

登台表中有此数据,需要将其装载到生产表中,并在其中插入新数据和旧数据的insert-update(类似备份)。

生产表中的数据示例如下:

AssetID  | BeginDate | EndDate | Field1 | Field2 | FieldN
1        | (TS)      | (TS)    | 0.2351 | 1.3510 | 4.1234

同时进行分期:

AssetID  | Field1 | Field2 | FieldN
1        | 0.2351 | 1.3510 | 4.1234

在生产中PK是AssetID和BeginDate,而在暂存中PK是AssetID(因为每次都会刷新数据)。

要求是编写一个存储过程,以便在登台区域中有新资产时,将它们作为新插入到prod中(BeginDateCURRENT_TIMESTAMPEndDate为{ {1}}),与此同时,如果生产阶段的NULLField1Field2字段上的数据(在暂存中)不同,则将写入新记录与{{1}相同的FieldNAssetIDBeginDate的{​​{1}},以及具有相同组合的旧记录(CURRENT_TIMESTAMP记忆,{{ 1}}被EndDate)更新为NULL的{​​{1}}。该存储过程没有参数,所有执行必须在同一存储过程中的2个表上进行。

你们中有人处理过类似的任务/要求吗?如果是,请分享您的解决方案吗?

0 个答案:

没有答案