2010-08-02 72 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

相關問題