Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 аналог try_convert в 2008 версии  [new]
хмхмхм
Guest
Подскажите пожалуйста, есть ли какой-нибудь аналог функции try_convert в 2008 версии?
23 янв 15, 11:06    [17158243]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
Glory
Member

Откуда:
Сообщений: 104760
собственная CLR
23 янв 15, 11:09    [17158270]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
хмхмхм
Guest
Glory,

очень жаль.


Может быть кто-то подскажет как в SQL 2008 заменить такой код:
declare @guid uniqueidentifier = '3DB126B4-2701-E411-80BD-00155DFAF907'


select isnull(try_convert(uniqueidentifier, '555'), @guid)
23 янв 15, 11:11    [17158293]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
хмхмхм
Guest
Сразу оговорюсь, что try catch не подходит, т.к. в функции конструкцию не используешь, а код будет использоваться для таблицы ('555' - это поле inserted в триггере).
23 янв 15, 11:14    [17158318]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
Glory
Member

Откуда:
Сообщений: 104760
хмхмхм
Сразу оговорюсь, что try catch не подходит,

Вы спрашивает о том, как перехватить ошибку выполнения, ничего для этого не предпринимая ?
23 янв 15, 11:16    [17158336]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
хмхмхм
Guest
Glory,

нет, просто валидировать строку, если валидная - вернуть guid, если нет - null.


Нашел варианты на просторах интернета буду пробовать.
23 янв 15, 11:28    [17158452]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
Glory
Member

Откуда:
Сообщений: 104760
хмхмхм
нет, просто валидировать строку, если валидная - вернуть guid, если нет - null.

Ни написав ни строчки для этого ?
23 янв 15, 11:29    [17158459]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
declare @guid uniqueidentifier = '3DB126B4-2701-E411-80BD-00155DFAF907'
      , @s varchar(30) = '555'
select isnull(try_convert(uniqueidentifier, @s), @guid);

select case when @s like replace('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]') then @s else @guid end;
23 янв 15, 11:32    [17158489]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31443
хмхмхм
нет, просто валидировать строку, если валидная - вернуть guid, если нет - null.
Валидировать как "uniqueidentifier"? тогда аналогом функции try_convert в 2008 версии будет LIKE
23 янв 15, 12:04    [17158729]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Knyazev Alexey,

только символы лучше все перечислить вместо диапазонов.
Или бинарный COLLATE применить
23 янв 15, 12:39    [17158955]     Ответить | Цитировать Сообщить модератору
 Re: аналог try_convert в 2008 версии  [new]
хмхмхм
Guest
Knyazev Alexey, alexeyvg, iap

спасибо
23 янв 15, 14:38    [17160044]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить