Pouvez VÉRIFIER les contraintes d'agir comme si d'autre?

J'ai un tableau avec 4 colonnes (ID (PK, int not NULL), col1 (NULL), col2 (NULL), col3 (NULL))

Id tiens à ajouter une contrainte de VÉRIFICATION (au niveau de la table, je pense?) de sorte que:

if col1 OR col2 are NOT NULL then col3 must be NULL

et
si col3 n'est PAS NULLE alors col1 ET col2 doit être NULL

c'est à dire col3 doit être null si col1 et col2 sont pas null ou vice-versa

Je suis très nouveau à SQL et SQL server bien et ne suis pas sûr de la façon de mettre en œuvre la présente, ou même si elle peut/doit être mis en œuvre?

Je pense peut-être:

CHECK ( (col1 NOT NULL OR col2 NOT NULL AND col3 NULL) OR 
        (col3 NOT NULL AND col1 NULL AND col2 NULL) )

Mais je ne suis pas sûr si les parenthèses peuvent être utilisées pour le groupe de la logique comme ça?

Si non, comment peut-il mis en œuvre?

Non, mes tableaux sont sur un serveur avec beaucoup d'autres choses que l'utilise, donc je ne veux pas de vis les choses :O
Vous n'avez pas d'équivalent d'un environnement de développement?
Nope, n'ont pas un moyen d'en créer un ici non plus, sinon c'est comment j'aurais commencé (aussi comme je l'ai dit je suis très nouveau à SQL et ne savez par où commencer configuration de SQL server ou DB à partir de zéro)
Oui, vous pouvez le faire, mais une chose qui attire les gens hors - si vous le créer, et, plus tard, de générer un script à partir de l'objet, votre bracketing et la mise en page peut avoir un aspect différent. Je ne suis pas sûr exactement comment ils sont stockés, mais ce n'est pas comme une chaîne de caractères, et donc quand une chaîne est re-généré, seuls les supports qui sont strictement nécessaires.
SQL Server Developer Edition coûte 60 $si vous achetez directement à partir de MS (vous pouvez le trouver moins cher ailleurs - 50 $sur Newegg, encore moins sur Amazon), et vous pouvez l'installer sur votre poste de travail. Vous besoin un environnement de non-production d'apprendre et de tester des choses.

OriginalL'auteur Toby | 2013-08-09