Сколько ограничений может быть дано столбцу таблицы в SQL Server

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

0
задан OMG Ponies 2 August 2010 в 19:18
поделиться

3 ответа

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

  • Первичный ключ
  • NULL / NOT NULL
  • ПО УМОЛЧАНИЮ
  • УНИКАЛЬНО (вероятно, конфликтует с ПО УМОЛЧАНИЮ)
  • Внешний ключ (неограничен, о чем я знаю, а не о том, что вам нужно больше чем обычно)
  • ПРОВЕРКА (также неограниченно, насколько мне известно, но крайне странно видеть более одной)
1
ответ дан 4 September 2019 в 00:46
поделиться

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

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

Примечания:

  • такие вещи, как одна ИДЕНТИФИКАЦИЯ или временная метка / версия строки или ROWGUIDCOL для каждой таблицы
  • у вас есть максимум 1024 столбца на стандартную таблицу, что очевидным образом ограничивает количество значений по умолчанию
  • некоторые будут взаимоисключающими

Некоторые приняты отсюда: Спецификации максимальной емкости для SQL Server

4
ответ дан 4 September 2019 в 00:46
поделиться

Не думаю, что есть практический предел, я только что создал таблицу с более чем 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
ответ дан 4 September 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: