Ръководство за УНИКАЛНИ ограничения в Microsoft SQL Server

click fraud protection

Чрез създаване на УНИКАЛЕН ограничение, Администраторите на SQL Server посочват, че колоната на базата данни не може да съдържа дублирани стойности. Когато създавате нов УНИКАЛЕН ограничение, SQL Server проверява въпросната колона, за да определи дали съдържа дублиращи се стойности. Ако маса съдържа дубликати, командата за създаване на ограничение е неуспешна. По същия начин, след като дефинирате UNIQUE ограничение за колона, опитите за добавяне или модифициране на данни, които биха причинили съществуването на дубликати, също се провалят.

SQL код на черен фон.
KIVILCIM PINAR / Гети изображения

Защо да използваме УНИКАЛНИ ограничения

UNIQUE ограничение и първичен ключ едновременно налагат уникалност, но има моменти, когато UNIQUE ограничението е по-добрият избор.

  • Използвайте UNIQUE ограничение, за да зададете няколко ограничения за таблица. Можете да прикачите само един първичен ключ към таблица.
  • Използвайте UNIQUE ограничение, когато колона разрешава нулеви стойности. Ограниченията на първичния ключ могат да бъдат прикачени само към колони, които не позволяват нулеви стойности.
instagram viewer

Създаване на УНИКАЛНО ограничение

Най-лесният начин да създадете уникално ограничение в Transact-SQL е да се свържете с Database Engine в Object Explorer в SQL Management Studio и след това да щракнете върху Нова заявка.

Използвайте следната заявка, модифицирайки условията, ако е необходимо, за да създадете нова таблица и да добавите ограничение за колона:

ИЗПОЛЗВАЙТЕ AdventureWorks2012; 
ОТИВАМ
СЪЗДАВАНЕ НА МАСА Производство. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
ОТИВАМ.

Изпълнете заявката.

По същия начин, за да създадете уникално ограничение за съществуваща таблица, изпълнете следната T-SQL заявка:

ИЗПОЛЗВАЙТЕ AdventureWorks2012; 
ОТИВАМ
ALTER TABLE Лице. Парола
ДОБАВЕТЕ ОГРАНИЧЕНИЕ AK_Password UNIQUE (PasswordHash, PasswordSalt);
ОТИВАМ.

УНИКАЛНИ Ограничения vs. УНИКАЛНИ индекси

Има известно объркване относно разликата между UNIQUE ограничение и UNIQUE индекс. Въпреки че можете да използвате различни T-SQL команди за създаването им (ALTER TABLE и ADD CONSTRAINT за ограничения и CREATE UNIQUE INDEX за индекси), те имат един и същ ефект, в по-голямата си част. Всъщност, когато създавате UNIQUE ограничение, то всъщност създава UNIQUE индекс на таблицата. Обърнете внимание обаче на няколко разлики:

  • Когато създавате индекс, можете да добавите допълнителни опции към командата за създаване.
  • Колона, предмет на УНИКАЛНО ограничение, може да се използва като a външен ключ.
instagram story viewer