Valeurs NULL SQL Server et concaténation

La plupart de mes tables ont quatre champs qui incluent:

Created datetime not null default = GetDate() CreatedBy varchar(50) not null default = suser_sname() Updated datetime null UpdatedBy Varchar(50) null 

Pour datatables que je montre dans une grid, je veux combiner ces champs pour montrer le "Last Edit" sous la forme de "datetime" par "user".

Sachant que mes champs Created et CreatedBy ne seront jamais null, Coalesce semble être la réponse, mais je reçois des erreurs avec ce qui suit:

 ,Convert(varchar(20),Coalesce(i.Updated,i.Created) ,120) + ' by ' + Coalesce(i.UpdatedBy,i.Created) as [LastEdit] 

Selon toute probabilité, le problème est le deuxième coalesce() . Je suppose que vous voulez dire:

 (Convert(varchar(20), Coalesce(i.Updated, i.Created), 120) + ' by ' + Coalesce(i.UpdatedBy, i.CreatedBy) --------------------------------^ ) as [LastEdit] 

Vous essayiez de combiner une date avec une string, ce qui peut causer un problème.

Méfiez-vous du paramètre Concatenate Null Yields Null de SQL Server. Vous souhaiterez peut-être le désactiver pendant l'exécution de votre requête. Ou si vous avez SQL 2012 ou supérieur, utilisez la fonction Concat (). http://msdn.microsoft.com/en-us/library/hh231515.aspx – concat http://msdn.microsoft.com/en-us/library/ms176056.aspx – set concat_null_yields_null