Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос / 6 сообщений из 6, страница 1 из 1
23.11.2002, 16:49:14
    #32071628
Alex_ran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос
Добрый день всем!
Кто подскажет как можно заставить SQL различать маленькие и большие буквы при работе со строками?
...
Рейтинг: 0 / 0
23.11.2002, 17:26:46
    #32071633
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос
Если это нужно всегда и для всех таблиц (что мало вероятно), то при установке сервера нужно указать Dictionary order, case-sensitive.

Можно это проделать и после установки

BOL
It is critical that you select the correct sort order when you install SQL Server. If you need to change sort orders after installation, you must rebuild your databases and reload your data.

Если же это надо только для некоторых выборок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
set nocount on
create table abc (
f char( 4 )
)

go
insert into abc values ('Bca')
insert into abc values ('abc')
insert into abc values ('Abc')
insert into abc values ('bca')
insert into abc values ('aaa')
insert into abc values ('AAA')
go

select f from abc
order by convert(varbinary,f)

go
drop table abc


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
f    
 ---- 
 
AAA 
Abc 
Bca 
aaa 
abc 
bca 
...
Рейтинг: 0 / 0
23.11.2002, 17:39:29
    #32071634
Alex_ran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос
Большое спасибо Cat2.
Я приношу свои извинения, я не совсем корректно поставил вопрос. Уменя сп передает строку к примеру ("Evolution") и мне нужно при сравнении этой строки с той что есть в базе(а в базе к примеру "evolution"), то выдавать сообщение об ошибке, что введеная строка не корректна.
...
Рейтинг: 0 / 0
23.11.2002, 22:26:21
    #32071670
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare @s1 nvarchar( 50 )
set @s1 = N'пИвО'

create table #t(f1 nvarchar( 50 ))
insert #t values(N'Пиво')
insert #t values(N'ПИВО')
insert #t values(N'пИвО')

select * from #t
select * from #t where f1 = @s1
select * from #t where cast(f1 as varbinary) = cast(@s1 as varbinary)

drop table #t
...
Рейтинг: 0 / 0
24.11.2002, 11:48:50
    #32071683
Alex_ran
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос
Спасибо Glory. Все ок.
...
Рейтинг: 0 / 0
25.11.2002, 03:26:24
    #32071728
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос
так будет правильнее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @s1 nvarchar( 50 )
set @s1 = N'пИвО'

create table #t(f1 nvarchar( 50 )collate Cyrillic_General_CI_AI)
insert #t values(N'Пиво')
insert #t values(N'ПИВО')
insert #t values(N'пИвО')

select * from #t
select * from #t where f1 = @s1
select * from #t where f1 = @s1 collate Cyrillic_General_CS_AS

drop table #t
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]