Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обмеження CHECK




Створення обмежень FOREIGN KEY

Обмеження FOREIGN KEY створюють одним з наступних методів:

  • під час створення таблиці (у складі визначення таблиці);
  • додаванням до існуючої таблиці за умовою, що обмеження FOREIGN KEY пов'язане з існуючим обмеженням PRIMARY KEY або UNIQUE з іншої (або цієї ж) таблиці.

Створені обмеження FOREIGN KEY дозволяється модифікувати й видаляти. Наприклад, при бажанні можна замінити стовпці, на які посилається обмеження FOREIGN KEY. Довжину стовпця, для якого визнечене обмеження FOREIGN KEY, змінити не можна.

Щоб модифікувати обмеження FOREIGN KEY за допомогою Transact-SQL, спочатку варто видалити існуюче визначення обмеження FOREIGN KEY, а потім створити нове визначення.

Наступний оператор CREATE TABLE створює таблицю Table1 і визначає для стовпця Col_2 обмеження FOREIGN KEY, що посилається на стовпець Employee1, який є в таблиці Employees стовпцем з первинним ключем:

CREATE TABLE Tablel

(

Col_1 INT PRIMARY KEY,

Col_2 INT REFERENCES Employees (Employee1)

)

Це ж обмеження можна створити, визначивши його на рівні таблиці:

CREATE TABLE Tablel

(

Col_l INT PRIMARY KEY,

Col_2 INT,

CONSTRAINT Col_2_fk FOREIGN KEY (Col_2) REFERENCES Employees (Employeel)

)

Обмеження FOREIGN KEY до існуючої таблиці додають за допомогою оператора ALTER TABLE:

ALTER TABLE Tablel

ADD CONSTRAINT col_2_fk FOREIGN KEY (Col_2)

REFERENCES Employees (Employeel)

 

Коли обмеження FOREIGN KEY додається до існуючого стовпця (або стовпцям), SQL Server 2000 перевіряє (за замовчуванням) наявні в стовпцях дані, щоб гарантувати, що всі значення, крім порожніх, існують у стовпцях з обмеженням PRIMARY KEY або UNIQUE, на які посилається FOREIGN KEY. Однак можна зробити так, щоб SQL Server не звіряв дані стовпця з новим обмеженням, і змусити SQL Server додати нове обмеження незалежно від даних стовпця. Ця можливість корисна в тих випадках, коли існуючі дані вже відповідають новому обмеженню FOREIGN KEY або коли бізнес-правило вимагає, щоб обмеження діяло, починаючи із цього моменту. Однак слід дотримуватися обережності при додаванні обмеження без перевірки існуючих даних, оскільки ця дія відбувається в обхід контролю SQL Server, що забезпечує цілісність дані таблиці.

Обмеження CHECK, забезпечують доменну цілісність шляхом обмеження значень, які дозволено вводити в стовпець. Цим вони схожі на обмеження FOREIGN KEY. Відмінність між ними полягає в способі визначення припустимих значень. Обмеження FOREIGN KEY одержують список припустимих значень із іншої таблиці, а обмеження CHECK визначають їх на основі логічного виразу, у яке не входять дані з іншого стовпця. Наприклад, можна обмежити діапазон значень стовпця з відомостями про зарплату, створивши обмеження CHECK, що допускає тільки значення від $15000 до $100000. Ця функція запобігає уведенню значень, які виходять за межі нормального діапазону зарплати. Можна створити обмеження CHECK за допомогою будь-якого логічного виразу, що повертає TRUE або FALSE залежно від використовуваного логічного оператора. От як виглядає логічний вираз, що допускає тільки значення з інтервалу $15 000 - $100 000:

salary >= 15000 AND salary <= 100000

До одного стовпця дозволяється застосувати кілька обмежень CHECK, які перевіряються в порядку їхнього створення. Крім того, можна застосувати одне обмеження CHECK до декількох стовпців, якщо створити його на рівні таблиці. Наприклад, засобами обмеження CHECK, певного для декількох стовпців, вдається підтвердити, що в будь-якому рядку, де значення поля країна дорівнює “ USA ”, у поле штат внесене значення, що складається із двох символів. Ця функція дозволяє перевірити в одному місці кілька умов.




Поделиться с друзьями:


Дата добавления: 2015-06-29; Просмотров: 325; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.