Al crear un índice sobre una columna que se va a ser único (pero no la clave primaria de la tabla), let servidor SQL de a elegir algunas opciones:¿Cuál es la diferencia entre crear un índice UNIQUE como "índice" o como "restricción" en SQL Server?
1) Puedo elegir para que sea una restricción o un índice.
Supongo que esto significa que si lo configuro como una restricción, no lo usará cuando consulte, solo cuando escriba. Sin embargo, la única forma eficiente en que se me ocurre que SQL Server haga cumplir esa restricción es creando realmente un índice. ¿Cuál es el uso para esta opción?
2) Además, si lo configuro como "índice", me permite especificar que debe ignorar las claves duplicadas. Esto es lo más desconcertante para mí ...
Supongo que significa lo opuesto a la restricción. Probablemente signifique "usarlo al consultar, pero ni siquiera verificar cuando se escribe".
Pero entonces ¿por qué debería establecerlo como ÚNICO?
Supongo que hay algunas optimizaciones que SQL Server puede hacer, pero me gustaría entenderlas mejor.
¿Alguien sabe exactamente qué hace SQL Server con estas opciones?
¿Cuál es el caso de uso para establecer un índice único, pero ignorar las claves duplicadas?
NOTA: Esto es para SQL Server 2000
EDIT: De acuerdo con lo que ha dicho, sin embargo ... Si creo una restricción, que se puede utilizar para acelerar las consultas que filtran utilizando los campos en la restricción?
Gracias!
Siempre me he preguntado sobre esta diferencia. La diferencia entre un índice único y una restricción única. – leppie