DATEADD(year,-1,getdate()) -- one year date
MERGE target_table USING source_table
ON merge_condition
WHEN MATCHED
THEN update_statement
WHEN NOT MATCHED
THEN insert_statement;
MERGE target_table
USING (SELECT * FROM source_table WHERE somedatecolumn > DATEADD(year,-1,getutcdate())) x
ON merge_condition
WHEN MATCHED
THEN update_statement
WHEN NOT MATCHED
THEN insert_statement
1条答案
按热度按时间idfiyjo81#
正如拉努所建议的:
驱动合并的源表是合并中唯一涉及的数据。如果源表有1000行,但去年只有10行,那么合并操作将超过10行。如果目标表有10000行,并且其中7行与源表的10行中的行匹配,则将进行7次更新,并进行3次插入。在操作结束时,目标表将有10003行