2010-08-02 2 views

Répondre

1

Contraintes:

  • clé primaire
  • NULL/NOT NULL
  • DEFAULT
  • unique (conflit probable avec DEFAULT)
  • clé étrangère (illimité que je suis au courant, non CHECK (également illimité à ma connaissance, mais extrêmement étrange d'en voir plus d'un)
+0

J'ai oublié les contraintes CHECK ... et NULL/NOT NULL –

+0

Je serais préoccupé par le fait qu'il y ait eu un problème de conception si vous en aviez besoin de plus d'un et que je suis d'accord Unique susceptible d'entrer en conflit avec défaut. – HLGEM

+0

@HLGEM: D'accord. Et Unique sur une clé primaire pourrait être redondant, avec des implications pour les composites ... –

1

Ne pense pas qu'il y ait une limite pratique, je viens de créer une table avec plus de contraintes 9k:

create table #TheresNoLimit (
    id int, 
    constraint constr1 check (id = 1), 
    constraint constr2 check (id = 1), 
    constraint constr3 check (id = 1), 
    ... 
    constraint constr9985 check (id = 1) 
) 
4

"Cela dépend"

  • Clé primaire (maximum un si cluster DEFAUT (maximum un par colonne)
  • NULL/NOT NULL (l'un ou l'autre par colonne). Oui, ceci est une contrainte
  • CHECK (colonne ou niveau table: lots)
  • UNIQUE (partie des indices max nonclustered = 999 sur SQL Server 2008, 1 si un cluster)
  • FOREIGN KEY (max 253)

notes:

  • choses comme IDENTITE ou horodatage/rowversion ou ROWGUIDCOL par table
  • vous avez un maximum de 1024 colonnes par table standard qui limites évidentes nombre de défauts
  • certains seront mutuellement exclusifs

Certains pris d'ici: Maximum Capacity Specifications for SQL Server

+0

+1: J'ai oublié les contraintes NULL aussi :( –

Questions connexes