我正在(Microsoft)Sql Server 2008 表上创建一个约束。我有两列是不同的数据类型。一列必须始终为空,但不能同时为空(逻辑异或/异或)。我目前有一个工作表达。
(@a is null or @b is null) and not (@a is null and @b is null)
我的问题是编写此代码是否有更简洁或更短的方法?
要测试它,您可以使用此代码...
declare @a int
declare @b varchar(5)
set @a=1
set @b='XXXXX'
if (@a is null or @b is null) and not (@a is null and @b is null)
select 'pass'
else
select 'fail'