¿Cómo creo una restricción única en una tabla existente en SQL Server 2005?
Estoy buscando tanto el TSQL como cómo hacerlo en el Diagrama de la base de datos.
¿Cómo creo una restricción única en una tabla existente en SQL Server 2005?
Estoy buscando tanto el TSQL como cómo hacerlo en el Diagrama de la base de datos.
Respuestas:
El comando SQL es:
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
Vea la sintaxis completa aquí .
Si desea hacerlo desde un Diagrama de base de datos:
En SQL Server Management Studio Express:
Advertencia: solo una fila nula puede estar en la columna que ha configurado para ser única.
Puede hacer esto con un índice filtrado en SQL 2008:
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
Consulte El valor del campo debe ser único a menos que sea NULL para un rango de respuestas.
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
También descubrí que puedes hacer esto a través de los diagramas de la base de datos.
Al hacer clic derecho en la tabla y seleccionar Índices / claves ...
Haga clic en el botón 'Agregar' y cambie las columnas a las columnas que desea que sean únicas.
El cambio es exclusivo de Sí.
Haga clic en cerrar y guarde el diagrama, y lo agregará a la tabla.
Estás buscando algo como lo siguiente
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b
Para crear una restricción ÚNICA en una o varias columnas cuando la tabla ya está creada, use el siguiente SQL:
ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
Para permitir nombrar una restricción ÚNICA para la consulta anterior
ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
La consulta soportada por MySQL / SQL Server / Oracle / MS Access.
UNIQUE NONCLUSTERED
y opciones PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
?
En algunas situaciones, puede ser conveniente asegurarse de que la clave Única no exista antes de crearla. En tales casos, el siguiente script podría ayudar:
IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name>
GO
ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>)
GO