我有合并查询,如下所示
MERGE [dbo].[tablename] AS tpr
USING @Tabletype AS spr
ON tpr.[ee_typeid] = spr.[ee_typeid]
WHEN MATCHED THEN
UPDATE SET tpr.[name]=spr.[name],
tpr.[modifiedon]=spr.[modifiedon],
tpr.[statecode]=spr.[statecode],
tpr.[statecodename]=spr.[statecodename]
WHEN NOT MATCHED THEN
INSERT ([ee_engagementtypeid],[ee_name],[modifiedon],[statecode],[statecodename])
values (spr.[ee_typeid],spr.[ee_name],spr.[modifiedon],spr.[statecode],spr.[statecodename]);
因此,当执行此过程时,它检查记录是否存在,如果是,则更新或插入,因为我不知道哪个列被修改,所以我没有放任何条件而是使用更新语句直接
你能告诉我什么是好的做法吗? 1.在更新语句之前放置条件以检查每列更新哪一个并仅更新该列。 2.或者直接更新所有列而不检查哪一列被修改。性能明智哪一个更好第一或第二? 我觉得第二个会慢一点,如果你有最好的查询处理,请告诉我 这样的条件。