On suppose une définition de table dans SQL Server comme suit:Utilisation de colonnes nullable dans une clause WHERE
CREATE TABLE MyTable (
Id UNIQUEIDENTIFIER NULL,
Info VARCHAR(MAX)
)
Et une requête:
DECLARE @id UNIQUEIDENTIFIER
DECLARE @info VARCHAR(MAX)
IF @id IS NOT NULL
BEGIN
SELECT @info = Info
FROM MyTable
WHERE Id = @id
END
Dans ce cas, l'analyseur statique de code Visual Studio produit le erreur suivant:
Warning : SR0007 : Microsoft.Performance : Nullable columns can cause final results to be evaluated as NULL for the predicate.
Je ne vois pas le problème ici. L'erreur est liée à la performance; MSDN dit que je devrais utiliser ISNULL() - mais une comparaison égale à NULL est toujours faux, non? Ai-je raté quelque chose, ou l'avertissement est-il faux?
[Ignorer cet avertissement. La recommandation est mauvaise pour la performance] (http://stackoverflow.com/questions/7471740/does-wrapping-nullable-columns-in-isnull-cause-table-scans) –