Если параметры сортировки сервера SQL Server чувствительны к регистру, а база данных нечувствительна к регистру, будут ли запросы чувствительными к регистру или нет? - PullRequest
3 голосов
/ 20 июля 2009

Если параметры сортировки сервера SQL Server чувствительны к регистру, а база данных нечувствительна к регистру, будут ли запросы чувствительными к регистру или нет? Я подумал, что он должен быть основан на базе данных, а не на сопоставлении серверов, но выполнил короткий тест, который, похоже, не соответствует действительности. Кто-нибудь знает наверняка?

Ответы [ 2 ]

5 голосов
/ 20 июля 2009

Ну, я думаю это объясняет это:

Сортировка идентификатора зависит от уровня, на котором он определен. Идентификаторам объектов уровня экземпляра, таким как имена входа и имена баз данных, назначается сопоставление по умолчанию для экземпляра. Идентификаторам объектов в базе данных, таким как таблицы, представления и имена столбцов, назначается сопоставление по умолчанию для базы данных. Переменные, метки GOTO, временные хранимые процедуры и временные таблицы можно создавать, когда контекст соединения связан с одной базой данных, а затем ссылаться, когда контекст был переключен на другую базу данных. Поэтому идентификаторы переменных, меток GOTO и временных таблиц находятся в сопоставлении по умолчанию для экземпляра.

Это означает, что переменные, возможно, в том числе параметры, чувствительны к регистру даже при сортировке без учета регистра. Вот что я вижу в своем тестировании: проблемы со случаем параметров, но никаких проблем со случаем имен таблиц / столбцов.

0 голосов
/ 20 июля 2009

Существуют различные уровни, на которых можно указывать параметры сортировки - также можно задать уровень столбца, который будет иметь приоритет. Обычно для параметров сортировки столбца используется значение по умолчанию для базы данных, которое, если не указано явно при создании базы данных, по умолчанию будет использовать параметры сортировки сервера.

Обратите внимание, что если вы создаете БД с одним сопоставлением, а затем изменяете сопоставление БД, это не влияет на существующие столбцы, которые были определены с другими сопоставлениями. Это будет действовать только для столбцов, созданных с этой точки для этой базы данных. Поэтому вам нужно изменить существующие столбцы.

Какой тест ты сделал?

...