SQL合并查询?

时间:2016-10-12 08:44:12

标签: sql-server sql-server-2008 tsql sql-merge

我有合并查询,如下所示

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.或者直接更新所有列而不检查哪一列被修改。

性能明智哪一个更好第一或第二? 我觉得第二个会慢一点,如果你有最好的查询处理,请告诉我 这样的条件。

0 个答案:

没有答案