UNIQUE ограничения в Microsoft SQL Server

Предимствата на използването на UNIQUE ограничения върху основните ограничения на ключовите думи

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

Защо да използваме UNIQUE ограничения

Универсалното ограничение и първичният ключ утвърждават уникалността, но има моменти, в които УНИКАЛНОТО ограничение е по-добрият избор.

Създаване на UNIQUE Constraint

Има много начини, по които можете да създадете UNIQUE ограничения в SQL Server. Ако искате да използвате Transact-SQL, за да добавите UNIQUE ограничения върху съществуваща таблица, можете да използвате израза ALTER TABLE, както е илюстрирано по-долу:

ALTER ТАБЛИЦА ДОБАВИ УНИКАЛЕН ()

Ако предпочитате да взаимодействате със SQL Server, като използвате GUI инструменти, можете също да създадете UNIQUE ограничения, използвайки SQL Server Management Studio . Ето как:

  1. Отворете SQL Server Management Studio .
  2. Разгънете папката Tables на базата данни, където искате да създадете ограничението.
  3. Щракнете с десния бутон върху таблицата, където искате да добавите ограничението, и щракнете върху Дизайн .
  4. В менюто "Дизайнер на таблицата" щракнете върху Индекси / Клавиши .
  5. В диалоговия прозорец Индекси / клавиши щракнете върху Добавяне .
  6. Изберете Уникален ключ в падащия списък Тип .

UNIQUE ограничения срещу UNIQUE индекси

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