Поиск sql с учетом регистра в vb.net

Итак, я использовал построитель запросов в Visual Studio (Visual Basic) для поиска в локальном файле mdb. У меня есть кнопка, которую нажимают, чтобы вызвать запрос для поиска, и она отлично работает, за исключением того, что не чувствительна к регистру. Вот что у меня есть на данный момент:

SELECT ID, LastName, FirstName, FullTime, HireDate, Salary
FROM SalesStaff
WHERE LastName like ? + '%'

Мой профессор хочет, чтобы мы использовали функцию InStr, но как мне заставить ее работать с подсказкой?

(InputBox в моем коде формы vb). Кроме того, похоже, что он не чувствителен к регистру. Я впервые использую SQL, поэтому почти не знаю, что делаю.

Заранее спасибо!


person Genoe    schedule 24.11.2014    source источник
comment
При установке MS SQL по умолчанию регистр не учитывается. Вот как его временно или навсегда изменить. blog.sqlauthority.com/2007/04/30 /   -  person Steve Wellens    schedule 25.11.2014
comment
Мне сказали, что ALTER TABLE не поддерживается ...   -  person Genoe    schedule 25.11.2014
comment
ALTER TABLE является частью основного стандарта SQL ... вы уверены, что он не сказал вам, что у вас нет прав на эту таблицу?   -  person Steve Wellens    schedule 25.11.2014
comment
Скорее всего, я спрошу профессора, зачем ему вообще нужна функция InStr? :)   -  person Allan S. Hansen    schedule 25.11.2014


Ответы (1)


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

select 1 where 'abc' = 'ABC'
select 1 where 'abc' collate Latin1_General_CS_AS = 'ABC' collate Latin1_General_CS_AS
select 1 where 'abc' collate Latin1_General_CI_AS = 'ABC' collate Latin1_General_CI_AS
select 1 where upper('abc') collate Latin1_General_CS_AS = 'ABC' collate Latin1_General_CS_AS
select 1 where upper('abc') collate Latin1_General_CI_AS = 'ABC' collate Latin1_General_CI_AS

CI означает нечувствительность к регистру.

CS означает чувствительность к регистру.

person JohnLBevan    schedule 25.11.2014