Водич за ЈЕДИНСТВЕНА ограничења у Мицрософт СКЛ Сервер-у

Стварањем ЈЕДИНСТВЕНОГ ограничење, Администратори СКЛ Сервера наводе да ступац базе података не сме да садржи дуплиране вредности. Када креирате нови ЈЕДИНСТВЕНИ ограничење, СКЛ Сервер проверава дотични ступац да би утврдио да ли садржи дупликате вредности. Ако је сто садржи дупликате, наредба за стварање ограничења не успева. Слично томе, након што дефинишете УНИКУЕ ограничење на колони, покушаји додавања или модификовања података који би довели до постојања дупликата такође не успевају.

СКЛ код на црној позадини.
КИВИЛЦИМ ПИНАР / Гетти Имагес

Зашто користити ЈЕДИНСТВЕНА ограничења

УНИКУЕ ограничење и примарни кључ намећу јединственост, али понекад је УНИКУЕ ограничење бољи избор.

  • Користите УНИКУЕ ограничење да одредите неколико ограничења за табелу. На сто можете да прикачите само један примарни кључ.
  • Користите УНИКУЕ ограничење када ступац дозвољава нулл вредности. Ограничења примарног кључа могу се приложити само колонама које не дозвољавају нулл вредности.

Стварање ЈЕДИНСТВЕНОГ ограничења

Најједноставнији начин за стварање јединственог ограничења у Трансацт-СКЛ-у је повезивање са механизмом базе података у Објецт Екплорер-у у СКЛ Манагемент Студију, а затим кликните на

instagram viewer
Нови упит.

Користите следећи упит, модификујући појмове по потреби, да бисте креирали нову табелу и додали ограничење у колону:

УСЕ АдвентуреВоркс2012; 
ГО
СТВОРИ ТАБЕЛУ Производња. ТрансацтионХисториАрцхиве4
(
ТрансацтионИД инт НОТ НУЛЛ,
ЦОНСТРАИНТ АК_ТрансацтионИД УНИКУЕ (ТрансацтионИД)
);
ГО.

Извршите упит.

Слично томе, да бисте креирали јединствено ограничење на постојећој табели, извршите следећи Т-СКЛ упит:

УСЕ АдвентуреВоркс2012; 
ГО
АЛТЕР ТАБЛЕ Особа. Лозинка
ДОДАЈ ОГРАНИЧЕЊЕ АК_Пассворд УНИКУЕ (ПассвордХасх, ПассвордСалт);
ГО.

ЈЕДИНСТВЕНА Ограничења вс. ЈЕДИНСТВЕНИ индекси

Дошло је до забуне око разлике између УНИКУЕ ограничења и УНИКУЕ индекса. Иако за њихово креирање можете користити различите Т-СКЛ наредбе (АЛТЕР ТАБЛЕ и АДД ЦОНСТРАИНТ за ограничења и ЦРЕАТЕ УНИКУЕ ИНДЕКС за индексе), они углавном имају исти ефекат. У ствари, када креирате УНИКУЕ ограничење, оно уствари креира УНИКУЕ индекс на табели. Ипак имајте на уму неколико разлика:

  • Када креирате индекс, наредби за стварање можете додати додатне опције.
  • Колона која подлеже УНИКУЕ ограничењу може се користити као а страни кључ.