Hello Community,
This my first post to the new look Microsoft Q&A.
I hope I'm in the right place to ask questions on Transact SQL
I have the following merge statement which as you can see contains a lot of fields to be included in the 'WHEN MATCHED THEN UPDATE SET' statement
MERGE INTO NationalChainMonthlyVisits AS t
USING tmp_NationalChainMonthlyVisits AS s
ON (t.fk_chains = s.fk_chains and t.local_date = s.local_date)
WHEN MATCHED THEN
UPDATE SET
fk_chains = s.fk_chains,
local_date = s.local_date,
visits = s.visits,
visits_lower = s.visits_lower,
visits_upper = s.visits_upper,
visits_growth = s.visits_growth,
scaled_visits = s.scaled_visits,
scaled_visits_lower = s.scaled_visits_lower,
scaled_visits_upper = s.scaled_visits_upper,
scaled_growth = s.scaled_growth,
visits_vs_baseline = s.visits_vs_baseline,
visits_vs_baseline_lower = s.visits_vs_baseline_lower,
visits_vs_baseline_upper = s.visits_vs_baseline_upper,
scaled_visits_relative = s.scaled_visits_relative,
scaled_growth_relative = s.scaled_growth_relative,
percentile_rank_visits = s.percentile_rank_visits,
percentile_rank_growth = s.percentile_rank_growth
WHEN NOT MATCHED THEN
INSERT ( fk_chains, local_date, visits, visits_lower, visits_upper, visits_growth, scaled_visits, scaled_visits_lower, scaled_visits_upper, scaled_growth, visits_vs_baseline, visits_vs_baseline_lower, visits_vs_baseline_upper, scaled_visits_relative, scaled_growth_relative, percentile_rank_visits, percentile_rank_growth)
VALUES (s.fk_chains,s.local_date,s.visits,s.visits_lower,s.visits_upper,s.visits_growth,s.scaled_visits,s.scaled_visits_lower,s.scaled_visits_upper,s.scaled_growth,s.visits_vs_baseline,s.visits_vs_baseline_lower,s.visits_vs_baseline_upper,s.scaled_visits_relative,s.scaled_growth_relative,s.percentile_rank_visits,s.percentile_rank_growth);
Is the a shorter way of achieving the above without writing out all the fields?
For example, in Python, I could achieve all of the above with the following few lines of code;
(deltaTable
.alias("t")
.merge(NationalChainMonthlyVisits.alias("s"), "t.fk_met_areas = s.fk_met_areas and t.fk_chains = s.fk_chains and t.local_date = s.local_date")
.whenMatchedUpdateAll()
.whenNotMatchedInsertAll()
.execute())
The above Python achieves the same as T-SQL, using the function whenMatchedUpdateAll(), and .whenNotMatchedInsertAll()
Can you let me know if there is a similar function in T-SQL?
Thanks