As vantaxes do uso de restricións únicas sobre restriccións principais da chave
Ao crear unha restrición ÚNICA, os administradores de SQL Server especifican que unha columna pode non conter valores duplicados. Cando crea unha nova restrición ÚNICA, SQL Server verifica a columna en cuestión para determinar se contén valores duplicados. Se a táboa contén duplicados preexistentes, o comando de creación de restrición falla. Do mesmo xeito, unha vez que teña unha restrición ÚNICA nunha columna, os intentos de engadir ou modificar datos que provocan a existencia de duplicados tamén fallan.
Por que usar restricións únicas
Unha limitación única e unha clave primaria impoñen a singularidade, pero hai momentos nos que unha restrición ÚNICA é a mellor opción.
- Use unha restrición ÚNICA cando desexe varias restricións a unha táboa. Só podes achegar unha chave primaria a unha táboa.
- Use unha restrición ÚNICA cando unha columna permita valores nulos. As restriccións de clave primaria só se poden asociar a columnas que non permiten valores nulos.
Creando unha restrición ÚNICA
Hai moitas maneiras de crear unha restrición ÚNICA no servidor SQL. Se desexa usar Transact-SQL para engadir unha restrición ÚNICA nunha táboa existente, pode usar a instrución ALTER TABLE, como se ilustra a continuación:
ALTER TABLE AÑADIR CONSTRAINT UNIQUE ()Se prefire interactuar con SQL Server usando ferramentas GUI, tamén pode crear unha restricción ÚNICA usando SQL Server Management Studio . Vexa como:
- Abre SQL Server Management Studio .
- Expande o cartafol das táboas da base de datos onde desexa crear a restrición.
- Fai clic co botón dereito na táboa onde desexa engadir a restrición e faga clic en Deseño .
- No menú Deseño de mesa, faga clic en Índices / Teclas .
- No diálogo Índices / chaves, faga clic en Engadir .
- Escolla a chave única na lista despregable Tipo .
Restricións únicas contra índices únicos
Houbo algunha confusión sobre a diferenza entre unha restrición ÚNICA e un índice ÚNICO. Mentres pode usar diferentes comandos de Transact-SQL para crealos (ALTER TABLE ... ADD CONSTRAINT para restricións e CREATE UNIQUE INDEX para índices), teñen o mesmo efecto, na maior parte. De feito, cando crea unha restrición ÚNICA, realmente crea un índice ÚNICO na táboa. É importante notar, con todo, que hai varias diferenzas:
- Cando crea un índice, pode engadir opcións adicionais ao comando de creación.
- Unha columna suxeita a unha restrición UNIQUE pode usarse como unha chave estranxeira .