primera - T-SQL: ¿Cómo creo una clave única que distingue entre mayúsculas y minúsculas?
sql distingue entre mayúsculas y minúsculas (2)
¿Cómo creo una restricción única en un campo varchar
que varchar
mayúsculas y minúsculas (SQL Server 2005)?
Actualmente mi restricción se ve así:
alter table MyTable
add constraint UK_MyTable_MyUniqueKey unique nonclustered (MyCol)
Cuando trato de insertar los dos valores siguientes, aparece el error "Violación de restricción UNIQUE KEY ...".
insert into MyTable (MyCol) values (''ABC'')
insert into MyTable (MyCol) values (''abc'') --causes a violation of UNIQUE KEY constraint ''UK_MyTable_MyUnqiueKey''
Me gustaría que los dos valores en mayúsculas y minúsculas se manejen como únicos. Imagino que implicará el siguiente código, pero no sé cómo cambia mi sintaxis de add constraint
.
COLLATE SQL_Latin1_General_CP1_CS_AS
Esto cambiará la columna para que sea sensible a mayúsculas y minúsculas. No creo que haya ningún cambio en tu restricción ...
ALTER TABLE mytable
ALTER COLUMN mycolumn VARCHAR(10)
COLLATE SQL_Latin1_General_CP1_CS_AS
Cualquier selección o combinación en esta columna se volverá sensible a mayúsculas y minúsculas como resultado de esta operación.
Solo puede establecer la distinción entre mayúsculas y minúsculas de los datos en la base de datos (la granularidad más pequeña de la columna). No puede establecer la sensibilidad a mayúsculas / minúsculas de un índice, que sería equivalente a poder indexar en una expresión, lo que es posible en algunas bases de datos pero no en el servidor SQL.