Обмеження унікального ключа (UNIQUE)
Це обмеження задає вимога унікальності значення поля (стовпця) або групи полів (стовпців), що входять в унікальний ключ. по відношенню до інших записів. Обмеження UNIQUE для стовпця таблиці схоже на первинний ключ. для кожного рядка даних в ньому повинні міститися унікальні значення. Встановивши для деякого стовпця обмеження первинного ключа. можна одночасно встановити для іншого стовпця обмеження UNIQUE. Відмінність в обмеженні первинного і унікального ключа полягає в тому, що первинний ключ служить як для впорядкування даних в таблиці, так і для з'єднання пов'язаних між собою таблиць. Крім того, при використанні обмеження UNIQUE допускається існування значення NULL. але лише єдиний раз.
Обмеження на значення (NOT NULL)
Для кожного стовпця таблиці можна встановити обмеження NOT NULL. що забороняє введення в цей стовпець нульового значення.
Обмеження перевірочне (CHECK) і правила
Дане обмеження використовується для перевірки допустимості даних, що вводяться в конкретний стовпець таблиці, тобто обмеження CHECK забезпечує ще один рівень захисту даних.
Обмеження цілісності CHECK задають діапазон можливих значень для стовпця або стовпців. В основі обмежень цілісності CHECK лежить використання логічних виразів.
Допускається застосування декількох обмежень CHECK до одного і того ж одну. У цьому випадку вони будуть застосовні в тій послідовності, в якій відбувалося їх створення. Можливе застосування одного і того ж обмеження до різних стовпчиках і використання в логічних виразах значень інших стовпців. Вказівка параметра NOT FOR REPLICATION наказує не виконувати перевірочних дій, якщо вони виконуються підсистемою реплікації.
Перевірочні обмеження можуть бути реалізовані і за допомогою правил. Правило являє собою самостійний об'єкт бази даних, який зв'язується зі стовпцем таблиці або призначеним для користувача типом даних. Причому один і той же правило може бути одночасно пов'язано з декількома стовпцями і призначеними для користувача типами даних, що є незаперечною перевагою. Однак істотний недолік полягає в тому, що з кожним стовпцем або типом даних може бути пов'язано тільки одне правило. Дозволяється комбінування обмежень цілісності CHECK з правилами. В цьому випадку виконується перевірка відповідності значення, що вводиться як обмеженням цілісності. так і правилам.
Правило може бути створено командою:
Обмеження за замовчуванням (DEFAULT)
Колонки може бути присвоєно значення за замовчуванням. Воно буде актуальним в тому випадку, якщо користувач не введе в стовпець ніякого іншого значення.
Окремо необхідно відзначити користь від використання значень за замовчуванням при додаванні нового стовпця в таблицю. Якщо у доданому стовпці заборонено зберігання значень NULL і не визначено значення за замовчуванням, то операція додавання стовпця закінчиться невдачею.
При визначенні в таблиці стовпці з параметром ROWGUIDCOL сервер автоматично визначає для нього значення за замовчуванням у вигляді функції NEWID (). Таким чином, для кожної нової рядки буде автоматично генеруватися глобальний унікальний ідентифікатор.
Додатковим механізмом використання значень за замовчуванням є об'єкти бази даних, створені командою:
При створенні таблиці. Крім розглянутих прийомів, можна вказати необов'язкове ключове слово CONSTRAINT. щоб привласнити обмеження ім'я, унікальне в межах бази даних.
Ключові слова CLUSTERED і NONCLUSTERED дозволяють створити для стовпця кластерний або некластерние індекс. Для обмеження PRIMARY KEY за замовчуванням створюється кластерний індекс. а для обмеження UNIQUE - некластерние. У кожній таблиці може бути створений лише один кластерний індекс. відмінною рисою якого є те, що відповідно до нього змінюється фізичний порядок рядків у таблиці. ASC і DESC визначають метод упорядкування даних в індексі.
За допомогою параметра WITH FILLFACTOR = фактор_заполненія задається ступінь заповнення індексних сторінок при створенні індексу. Значення фактора заповнення вказується в процентах і може змінюватися в проміжку від 0 до 100.
Параметр ON імя_группи_файлов позначає групу, в якій планується зберігати таблицю.
зміна таблиці
Зміни в таблицю можна внести командою:
На додаток до вже названих параметрах визначимо параметр TRIGGER ALL. який наказував би задіяти або відключити конкретний тригер або все тригера, пов'язані з таблицею.