Ich erstelle eine Einschränkung für eine (Microsoft) Sql Server 2008-Tabelle. Ich habe zwei Spalten, die unterschiedliche Datentypen haben. Eine Spalte muss immer Null sein, aber nicht beide (ein logisches exklusives ODER/XOR). Ich habe momentan einen funktionierenden Ausdruck.SQL Server Null Logisch XOR
(@a is null or @b is null) and not (@a is null and @b is null)
Meine Frage ist Gibt es einen Reiniger oder kürzerer Weg, um diesen Code zu schreiben?
es testen Sie diesen Code verwenden können ...
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'
Dies ist Microsoft SQL Server, nicht postgresql. Die Syntax unterstützt nicht "! =". –