【发布时间】:2014-08-11 08:29:48
【问题描述】:
在 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 逻辑的基本理解不符...这是特例吗?
提前谢谢你!
【问题讨论】:
-
它是可选的,但是,当你混合 AND 和 OR 时,为了清楚起见,总是使用 ()。
标签: sql sql-server tsql merge