2010-08-02 38 views

回答

1

约束:

  • 主键
  • NULL/NOT NULL
  • DEFAULT
  • UNIQUE(具有默认的可能冲突)
  • 外键(无限的,我所知道的,不你想要多于一个)
  • CHECK(对我的知识也是无限的,但看到不止一个是极其奇怪的)
+0

我忘了CHECK ...和NULL/NOT NULL的约束条件 – 2010-08-02 18:50:53

+0

如果你需要多于一个这样的设计问题,并且同意Unique可能与默认设置冲突,那么我会担心会有设计问题。 – HLGEM 2010-08-02 18:53:39

+0

@HLGEM:同意。主键上的独特可能是多余的,对复合材料有影响... – 2010-08-02 18:56:31

1

不要以为有一个实际的限制,我刚刚创建的表有超过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

“这取决于”

  • 主键(最大的一个,如果集群,或SQL Server 2008上最大非聚簇索引的一部分= 999)
  • DEFAULT(每列最多一个)
  • NULL/NOT NULL(每列一个或另一个)。是的,这是一种约束
  • CHECK(列或表级别:地段)
  • UNIQUE
  • 外键(最高253)
  • (最大的非聚集索引= 999 SQL Server 2008中,1如果集群上的一部分)

注:

  • 之类的东西每桌一个identity或timestamp/rowversion或ROWGUIDCOL
  • 你必须按标准表1024列的最大哪些默认的明显的界限数
  • 有的会相互排斥

一些从这里取:Maximum Capacity Specifications for SQL Server

+0

+1:我忘了NULL约束太:( – 2010-08-02 18:53:59

相关问题