我在(Microsoft)Sql Server 2008表上創建約束。我有兩列是不同的數據類型。一列必須始終爲空,但不能同時爲空(A邏輯異或/異或)。我目前有一個工作表達。SQL Server空邏輯異或
(@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。該語法不支持「!=」。 –