У меня есть база данных с комплектовке CI (по умолчанию) French_CI_AS
Как я могу сделать свой чужие ключи чувствительными к регистру в базе данных без учета регистра без учета регистра?
При этом параметры сортировки, SQL Server будет делать нечувствительны к регистру проверки на своих внешних ключей, который имеет смысл, но вызывает у меня довольно много проблем, в основном потому что сравнение строк не имеет такое же поведение в моем уровне базы данных и в моем уровне приложений
у меня есть, вероятно, около двадцати varchar
и первичных ключи сотни ФКСА на этих varchar
первичных ключей (да, я знаю, с использованием только bigint
, как первичные ключи во избежание проблемы в первую очередь, но переход от varchar
к bigint
здесь не является вариантом)
Какой самый простой способ разобраться в этом? Я использую SQL Server 2008.
Вы не можете. Если сопоставление базы данных нечувствительно к регистру, то все сравнения (используемые FK-> PK-ссылками) не чувствительны к регистру ... нет «магии», чтобы изменить это .... и ** да ** - используя «varchar 'поскольку PK - это действительно плохая идея ** - это лишь одна из многих причин, почему вы не должны использовать' varchar' как PK ..... –
Не помогло бы COLLATE в определении столбца? 'CREATE TABLE ... column_name COLLATE collation_name'? –
@marc_s: Конечно, могу. Например, я мог бы изменить сортировку всей дебабазы на чувствительный к регистру. Я просто пытаюсь найти как можно больший путь, чтобы достичь своей первоначальной цели ... – Brann