use testingset ansi_nulls ON;declare @n1 varchar(20)declare @n2 varchar(20)set @n1=nullset @n2='h'select case when @n1=@n2 then 'true' else 'false' endselect case when NOT @n1=@n2 then 'true' else 'false' endselect case when @n1>=@n2 then 'true' else 'false' endselect case when @n1<=@n2 then 'true' else 'false' endselect case when @n1<>@n2 then 'true' else 'false' endset @n2=nullselect 'switch'select case when @n1=@n2 then 'true' else 'false' endselect case when NOT @n1=@n2 then 'true' else 'false' endselect case when @n1>=@n2 then 'true' else 'false' endselect case when @n1<=@n2 then 'true' else 'false' endselect case when @n1<>@n2 then 'true' else 'false' end
CREATE TABLE null_primary_key_test ( id INT IDENTITY(1,1), null_column INT NULL CONSTRAINT uc_null_column UNIQUE ) GO INSERT INTO null_primary_key_test ( null_column ) SELECT NULL -- the 2 causes the batch to execute twice GO 2 DROP TABLE null_primary_key_test