Sunday, January 3, 2016

IsNull vs Coalesce

 

Stellt ihr den folgenden TSQL Code vor:

declare @c varchar(10) = 'hallo welt'
declare @n varchar(5) = null

select coalesce(@n, @c) as [coalesce], isnull(@n, @c) as [isnull]

create table A (col1 varchar(10))
insert into A select 'value1'

select coalesce(col1, '') as Col1, isnull(col1, '') as Col2 into mytemp from A;
go

sp_help mytemp

Der Output lautet:

IsNull_Coalesce

Da sieht man, dass IsNull den Datentyp von dem ersten Parameter nimmt, wobei Coalesce von dem zweiten. Ausserdem bei einem Select Into Statement werden die Nullable Eigenschaften der Felder von der Zieltabelle unterschiedlich gesetzt.

No comments: