Microsoft SQL Server-дегі UNIQUE шектеулер

UNIQUE шектеулерді негізгі кілттер шектеулері бойынша қолданудың артықшылықтары

UNIQUE шектеуді жасай отырып, SQL Server әкімшілері бағанда қайталанатын мәндер болмауы керектігін көрсетеді. Жаңа UNIQUE шектеуін жасаған кезде, SQL Server ол туралы кез-келген қайталанатын мәндер бар-жоғын анықтау үшін бағанды ​​тексереді. Егер кестеде бұрыннан бар көшірмелер бар болса, шектеулерді жасау пәрмені сәтсіз аяқталады. Сол сияқты, бағандағы UNIQUE шектеуі бар болған кезде, қайталанатын файлдарға әкелетін деректерді қосу немесе өзгерту әрекеті сәтсіздікке ұшырайды.

Неге UNIQUE шектеулерді қолдану

UNIQUE шектеуі және негізгі кілт бірегейлікті қамтамасыз етеді, бірақ UNIQUE шектеуі жақсы таңдау болып табылады.

UNIQUE шектеулерді жасау

SQL Server бағдарламасында UNIQUE шектеулерді жасаудың көптеген жолдары бар. Егер сіз бұрыннан бар кестеде UNIQUE шектеу қосу үшін Transact-SQL қолданғыңыз келсе, төменде көрсетілгендей, ALTER TABLE операторын пайдалануға болады:

ALTER TABLE ADD CONSTRAINT UNIQUE ()

Егер сіз GUI құралдарын пайдаланып SQL Server-мен өзара әрекеттесуді қаласаңыз, SQL Server Management Studio-ты пайдалану арқылы UNIQUE шектеуін жасай аласыз. Мұнда келесідей:

  1. SQL Server басқару студиясын ашыңыз.
  2. Шектеуді жасағыңыз келетін дерекқордың кестелер қалтасын кеңейтіңіз.
  3. Шектеуді қосқыңыз келетін кестені тінтуірдің оң жағымен басып, Дизайн түймешігін басыңыз.
  4. Кесте жасаушысы мәзірінде Индекстер / Кілттер түймешігін басыңыз.
  5. Индекстер / Кілттер тілқатысу терезесінде Қосу түймешігін басыңыз.
  6. Түрі ашылмалы тізімінде Бірегей кілтті таңдаңыз.

UNIQUE шектеулер мен UNIQUE индекстеріне қатысты

UNIQUE шектеуі мен UNIQUE индексі арасындағы айырмашылық туралы кейбір шатасулар болды. Сіз оларды жасау үшін әртүрлі Transact-SQL пәрмендерін қолдануға болады (ALTER TABLE ... шектеу үшін CONSTRAINT қосу және көрсеткіштер үшін CREATE UNIQUE INDEX), олар көбінесе бірдей әсерге ие. Шындығында, UNIQUE шектеу жасағанда, ол шын мәнінде кестеде UNIQUE индексін жасайды. Дегенмен, бірнеше айырмашылық бар екенін атап өту маңызды: