【发布时间】:2012-12-05 20:13:35
【问题描述】:
我正在 (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'
【问题讨论】:
-
这是 Microsoft SQL Server,而不是 postgresql。语法不支持“!=”。
标签: sql sql-server tsql constraints xor