una tipos tener restricciones restriccion que puede nombres mayusculas fechas ejemplo datos crear constraint check sql sql-server sql-server-2008 unique-constraint

tipos - ¿Cómo puedo crear una restricción única en mi columna(SQL Server 2008 R2)?



restricciones de nombres que puede tener una base de datos. (4)

Tengo SQL Server 2008 R2 y quiero establecer una columna única.

Parece que hay dos formas de hacer esto: "índice único" y "restricción única". No son muy diferentes de lo que yo entiendo, aunque la mayoría recomienda la restricción única, porque también obtienes un índice automáticamente.

¿Cómo creo una restricción única?

ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name)

¿Hay alguna manera de crear una restricción única a través de SQL Server Management Studio?


Establecer columna como única en SQL Server desde la GUI:

Realmente te hacen correr por el granero para hacerlo con la GUI:

Asegúrese de que su columna no viole la restricción única antes de comenzar.

  1. Abra SQL Server Management Studio.
  2. Haga clic con el botón derecho en su Tabla, haga clic en "Diseño".
  3. Haga clic con el botón derecho en la columna que desea editar, aparecerá un menú emergente, haga clic en Índices / Teclas.
  4. Haga clic en el botón "Agregar".
  5. Expande la pestaña "General".
  6. Asegúrese de tener la columna que desea que sea única seleccionada en el cuadro "columnas".
  7. Cambie el cuadro "Tipo" a "Clave única".
  8. Haga clic en "Cerrar".
  9. Verá un pequeño asterisco en la ventana del archivo, esto significa que los cambios aún no se han guardado.
  10. Presione Guardar o presione Ctrl + s. Debería guardar, y tu columna debería ser única.

O configure la columna como única desde la ventana de consulta SQL:

alter table location_key drop constraint pinky; alter table your_table add constraint pinky unique(yourcolumn);

Los cambios surten efecto de inmediato:

Command(s) completed successfully.


¿Estás seguro de que la columna es actualmente única? Puedes descubrirlo de esta manera:

select name,count(*) from customer group by name having count(*) > 1

Esto te dará duplicados.


Aquí hay otro camino a través de la GUI que hace exactamente lo que hace su script a pesar de que pasa por Índices (no Restricciones) en el explorador de objetos.

  1. Haga clic derecho en "Índices" y haga clic en "Nuevo índice ..." (nota: esto está deshabilitado si tiene la tabla abierta en la vista de diseño)

  1. Asigne un nuevo nombre a un índice ("U_Name"), marque "Único" y haga clic en "Agregar ..."

  1. Seleccione la columna "Nombre" en la próxima ventana

  1. Haga clic en Aceptar en ambas ventanas

Para crear estas restricciones a través de la GUI, necesita el diálogo de "índices y claves", no las restricciones de verificación.

Pero en tu caso solo necesitas ejecutar el código que ya tienes. No necesita ser ingresado en el diálogo de expresión en absoluto.