在t-SQL MERGE语句的以下小节中,是否需要括号(圆括号)?
WHEN MATCHED
AND ( Target.CustomerName <> Source.CustomerName
OR Target.Planet <> Source.Planet
)
THEN
UPDATE SET
Target.CustomerName = Source.CustomerName
, Target.Planet = Source.Planet
我问这个问题是因为我使用的是t-SQL格式化工具(ApexSQL),它识别出这些括号是不必要的,因此删除它们,因此:
WHEN MATCHED
AND Target.CustomerName <> Source.CustomerName
OR Target.Planet <> Source.Planet
THEN
UPDATE SET
Target.CustomerName = Source.CustomerName
, Target.Planet = Source.Planet
然而,这与我对AND, OR逻辑的基本理解不符…这是个特例吗?
提前感谢!
是可选的。使用WHEN MATCHED
WHEN MATCHED [ AND <clause_search_condition> ]
clause_search_condition
单独求值