Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
652.5 Кб
Скачать
  1. Обмеження unique оператора create table

Обмеження UNIQUE можна використовувати, щоб переконатися, що в окремі стовпці, не включені в первинний ключ, не вводяться повторювані значення. Хоча унікальність значень обмеження UNIQUE і PRIMARY KEY гарантують в рівній мірі, в разі, коли необхідно забезпечити унікальність в стовпці або комбінації стовпців, що не є первинними ключовими, замість обмеження PRIMARY KEY слід використовувати обмеження UNIQUE.

Для таблиці можна задати кілька обмежень UNIQUE, і тільки одне обмеження PRIMARY KEY.

Також, на відміну від PRIMARY KEY, обмеження UNIQUE допускають значення NULL. Однак, як і всяке інше значення стовпця з обмеженням UNIQUE, NULL може зустрічатися тільки один раз.

На обмеження UNIQUE можуть посилатися обмеження FOREIGN KEY.

Обмеження UNIQUE може бути створено як частина визначення таблиці при її створенні. Обмеження UNIQUE може бути додано до вже існуючої таблиці за умови, що стовпець або комбінація стовпців, на яких воно грунтується, містять тільки унікальні значення. Таблиця може містити кілька обмежень UNIQUE.

Якщо обмеження UNIQUE вже існує, воно може бути змінене або видалене. Наприклад, може знадобитися зв'язати обмеження UNIQUE з іншими стовпцями або змінити тип кластеризації індексу.

Примітка: Щоб змінити обмеження UNIQUE, необхідно спочатку видалити існуюче обмеження, а потім створити його повторно за допомогою нового визначення.

При додаванні обмеження UNIQUE на вже існуючий стовпець або групу стовпців в таблиці, компонент Database Engine за умовчанням перевіряє унікальність всіх існуючих значень в зазначених стовпцях. При спробі додати обмеження UNIQUE до стовпцю, що містить повторювані значення, компонент Database Engine повертає помилку, а обмеження не додається.

Компонент Database Engine автоматично створює індекс UNIQUE, що забезпечує виконання вимог унікальності значень для обмежень UNIQUE. Тому, при спробі вставки в таблицю рядки з повторюваними даними, компонент Database Engine видає повідомлення про помилку, в якому повідомляється про порушення обмеження UNIQUE, а рядок в таблицю не вставляється. Для забезпечення виконання обмеження UNIQUE за умовчанням створюється унікальний некластерізованний індекс, якщо явно не вказано створення кластеризованого індексу.

У наведеному нижче фрагменті інструкції CREATE TABLE показано визначення стовпця Name і на цей стовпець задано обмеження UNIQUE, що гарантує унікальність значень.

Name nvarchar (100) NOT NULL

UNIQUE NONCLUSTERED

Щоб зняти вимоги унікальності, пропоновані значенням в стовпцях таблиці, включеної в обмеження UNIQUE, необхідно видалити це обмеження. Обмеження UNIQUE не може бути видалено, якщо пов'язаний з ним стовпець використовується в якості повнотекстового ключа таблиці.

  1. Обмеження check оператора create table

Обмеження типу CHECK (перевірочні обмеження) дозволяють виконувати операції порівняння, щоб визначити, чи відповідають значення певним заданим умовам. Синтаксис обмежень типу CHECK дуже схожий на загальний синтаксис обмежень.

CONSTRAIN [ім'я обмеження] CHECK (условія_поіска) [откладиванію_ограніченія] [время_ відкладання]

З іншими елементами цього обмеження ми познайомимося в цьому розділі. умови пошуку

Параметр визначає за допомогою одного або декількох виразів і предиката одну або декілька умов пошуку, які накладають обмеження на значення, що вставляються в стовпець або таблицю. Для стовпця можна вказати кілька умов пошуку за допомогою операторів AND і OR. (Згадайте пропозицію WHERE.)

Вважається, що значення задовольняє обмеженню чіпа CHECK, якщо результатом перевірки умов пошуку є значення TRUE або UNKNOWN. Обмеження типу CHECK використовують тільки булеві оператори (наприклад, =,> =, <= або <>), хоча вони можуть включати будь предикати SQL 2003, наприклад IN або LIKE. Обмеження типу CHECK можна з'єднувати один з одним (при перевірці одного стовпця) за допомогою операторів AND і OR. Ось ще кілька правил, що стосуються обмежень типу CHECK.

Стовпець або таблиця можуть включати одне або кілька обмежень типу

Умови пошуку не можуть містити агрегатні функції, винятком є ​​їх використання в підзапитів.

В умовах пошуку можна використовувати недетермінірованние функції і підзапити.

Обмеження типу CHECK може посилатися тільки на ідентичні об'єкти. Тому, якщо обмеження оголошено в глобальній тимчасової таблиці, воно не може посилатися на постійну таблицю.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]