检查约束中的括号问题

Jon*_*ood 2 sql-server check-constraints

我正在尝试创建以下检查约束.

(
   [Href] IS NOT NULL AND
   [ETag] IS NOT NULL AND
   [UserName] IS NOT NULL AND
   [Password] IS NOT NULL AND
   [UID] IS NOT NULL
)
OR
(
   [Href] IS NULL AND
   [ETag] IS NULL AND
   [UserName] IS NULL AND
   [Password] IS NULL AND
   [UID] IS NULL
)
Run Code Online (Sandbox Code Playgroud)

我可以保存它并且没有错误.但SSMS删除了两个内括号(这样在开始处只有左括号,在结尾处只有右括号).

这似乎完全改变了意义.我希望所有这些列都为null或者它们都不为null.有没有理由说SQL Server无法处理这个?

ype*_*eᵀᴹ 6

SSMS是正确的.不需要括号.

AND具有比ORSQL 更高的优先级,因此带括号和不带括号的两个版本是等效的.