(Microsoft) Sql Server 2008 テーブルに制約を作成しています。データ型が異なる 2 つの列があります。常に 1 つの列が null である必要がありますが、両方であってはなりません (論理排他的 OR/XOR)。私は現在、作業式を持っています。
(@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'