Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как задать Collation для REPLACE?  [new]
BPK
Member

Откуда: ни: возьмись.
Сообщений: 1601
Чтобы поиск был чувствителен к регистру символов, я задаю в полях таблиц Collation. Но что делать, если нужно сделать чувствительной к регистру символов инструкцию REPLACE, причём, не для полей таблицы а для простых переменных типа nvarchar?

declare @OrigText nvarchar(4000), @SrchText(4000), @RepText(4000), @ResText(4000)

..............

set @ResText=replace(@OrigText,@SrchText,@RepText)
16 мар 05, 15:26    [1391000]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
BPK
Member

Откуда: ни: возьмись.
Сообщений: 1601
Так, я ошибся при создании темы, а форум не позволяет отредактировать её. Непорядок!
16 мар 05, 15:27    [1391006]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
топик килл автор банн

для спящего время бодрствования равносильно сну
16 мар 05, 15:28    [1391012]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Переменные имеют коллэйшен инстанса сервера.
16 мар 05, 15:30    [1391020]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31603
declare @OrigText nvarchar(4000), @SrchText nvarchar(4000), @RepText nvarchar(4000), @ResText nvarchar(4000)
set @OrigText = 'ABCD'
set @SrchText = 'b'
set @RepText = '*'

set @ResText = replace(@OrigText,@SrchText collate SQL_Latin1_General_CP1251_CI_AS, @RepText)
select @ResText
set @ResText = replace(@OrigText,@SrchText collate SQL_Latin1_General_CP1251_CS_AS, @RepText)
select @ResText

--------------------------
A*CD

--------------------------
ABCD
16 мар 05, 16:00    [1391233]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31603
pkarklin
Переменные имеют коллэйшен инстанса сервера.

Это точно не так. Иеаче вообще ничего-бы не работало, если коллэйшен БД <> коллэйшен инстанса сервера.

Насколько я помню, переменные имеют коллэйшен текущей БД для батча коннекта и БД ХП для ХП.
16 мар 05, 16:04    [1391267]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
alexeyvg
pkarklin
Переменные имеют коллэйшен инстанса сервера.

Это точно не так. Иеаче вообще ничего-бы не работало, если коллэйшен БД <> коллэйшен инстанса сервера.

Насколько я помню, переменные имеют коллэйшен текущей БД для батча коннекта и БД ХП для ХП.


правильно Вы понимаете, это я чушь сморозил. :(
16 мар 05, 16:12    [1391312]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
BPK
Member

Откуда: ни: возьмись.
Сообщений: 1601
Алексей2003
топик килл автор банн

Жаль, нельзя здесь материться.
Более бесполезного ответа я ещё не видел.

alexeyvg, спасибо. Дельный совет.

pkarklin
Переменные имеют коллэйшен инстанса сервера

Если бы это было так, то данный совет означал бы сменить Collation сервера, а этого делать нельзя. Collation мне нужно менять только в одном месте, только для одной операции.
16 мар 05, 16:54    [1391560]     Ответить | Цитировать Сообщить модератору
 Re: Как задать Collation для REPLACE?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
BPK

pkarklin
Переменные имеют коллэйшен инстанса сервера

Если бы это было так, то данный совет означал бы сменить Collation сервера, а этого делать нельзя. Collation мне нужно менять только в одном месте, только для одной операции.


Я уже "извинился" за свою пост. Специально для Вас посыпаю голову пеплом!
16 мар 05, 17:11    [1391653]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить