Сколько ограничений может быть дано для столбца таблицы в SQL Server - PullRequest
0 голосов
/ 02 августа 2010

Может ли кто-нибудь объяснить мне, какое максимальное количество ограничений может быть установлено для любого данного столбца таблицы в SQL Server.

Ответы [ 3 ]

4 голосов
/ 02 августа 2010

«Это зависит»

  • Первичный ключ (максимальный, если кластеризован, или часть макс. Некластеризованных индексов = 999 в SQL Server 2008)
  • ПО УМОЛЧАНИЮ (максимум по одному на столбец)
  • NULL / NOT NULL (один или другой на столбец).Да, это ограничение
  • CHECK (уровень столбца или таблицы: лоты)
  • UNIQUE (часть максимальных некластеризованных индексов = 999 в SQL Server 2008, 1 в случае кластеризации)
  • FOREIGN KEY (максимум 253)

Примечания:

  • такие вещи, как одна IDENTITY или отметка времени / rowversion или ROWGUIDCOL на таблицу
  • , у вас есть максимум1024 столбца на стандартную таблицу, которые явно ограничивают количество значений по умолчанию
  • некоторые будут взаимоисключающими

Некоторые взяты отсюда: Характеристики максимальной емкости для SQL Server

1 голос
/ 02 августа 2010

Не думаю, что есть практический предел, я только что создал таблицу с более чем 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)
)
1 голос
/ 02 августа 2010

Ограничения:

  • Первичный ключ
  • NULL / NOT NULL
  • DEFAULT
  • UNIQUE (вероятный конфликт с DEFAULT)
  • Внешний ключ (неограниченно, я знаю, не то, чтобы вы хотели больше одного, как правило)
  • ПРОВЕРКА (также не ограничен, насколько мне известно, но крайне странно видеть больше одного)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...