2009-08-15 8 views
1

Quels sont les avantages d'une seule contrainte nulle pour SQL Server?sql contrainte unique

+0

Désolé, que voulez-vous dire? Si c'est une contrainte unique, vous ne pouvez pas avoir deux fois null, évidemment? –

+0

Cela peut ne pas être évident, puisque l'une des significations de null est "unknown". Est-ce qu'un inconnu = un autre? Pas dans la plupart des utilisations de null en SQL! En d'autres termes (null = null) est faux. – automatic

+0

Oui, eh bien alors on pourrait soutenir que SQL est faux dans son application de la contrainte unique (et je le ferais). Bien que j'arrive à ce que null = null soit faux est ridicule. Mais mes sentiments ne le changeront pas :) –

Répondre

1

C'est un avantage si vous considérez que NULL est une valeur qui doit être unique comme les autres valeurs, cependant la plupart des développeurs considèrent que NULL est l'absence de valeur et donc 2 NULL ne sont pas égaux et dans ce cas c'est une limitation qui doit être contournée en SQL (contrairement aux autres SGBD)

+0

Je ne dirais pas que 'la plupart des développeurs' considèrent que, je dirais que 'SQL Server' le pense. Et personnellement je pense que c'est une grosse, et très ennuyante, erreur. null est clairement nul et null = null dans mon livre. Je n'ai jamais eu besoin d'une valeur qui dit «et assurez-vous que cela ne vaut jamais rien d'autre». Mais je m'égare. C'est un argument digne de ce fil. –

+1

Pour moi, cette "fonctionnalité" MSSQL particulière est généralement une limitation donc je dois contourner l'une des méthodes connues, la méthode de vue est généralement la plus propre. –

+0

Je pense que l'index filtré est l'une des meilleures méthodes pour le contourner. (MSSQL 2008 et plus tard) –

Questions connexes